feat: servicex export
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
|
import lexorank
|
||||||
from fastapi import APIRouter, Depends, Response
|
from fastapi import APIRouter, Depends, Response
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
@@ -8,6 +9,7 @@ import enums.service
|
|||||||
from backend.dependecies import SessionDependency
|
from backend.dependecies import SessionDependency
|
||||||
from backend.session import get_session
|
from backend.session import get_session
|
||||||
from generators.price_list_pdf_generator.generator import PriceListPdfGenerator
|
from generators.price_list_pdf_generator.generator import PriceListPdfGenerator
|
||||||
|
from generators.services_excel_generator import ServiceExcelExporter
|
||||||
from schemas.base import BaseEnumListSchema
|
from schemas.base import BaseEnumListSchema
|
||||||
from schemas.service import *
|
from schemas.service import *
|
||||||
from services.auth import guest_user, authorized_user
|
from services.auth import guest_user, authorized_user
|
||||||
@@ -97,6 +99,7 @@ async def get_price_list(
|
|||||||
pdf_file: BytesIO = await PriceListPdfGenerator(session).create_price_list_pdf()
|
pdf_file: BytesIO = await PriceListPdfGenerator(session).create_price_list_pdf()
|
||||||
return Response(pdf_file.getvalue(), media_type='application/pdf')
|
return Response(pdf_file.getvalue(), media_type='application/pdf')
|
||||||
|
|
||||||
|
|
||||||
# endregion
|
# endregion
|
||||||
|
|
||||||
# region Categories
|
# region Categories
|
||||||
@@ -151,6 +154,7 @@ async def reorder_category(
|
|||||||
):
|
):
|
||||||
return await ServiceService(session).reorder_category(request)
|
return await ServiceService(session).reorder_category(request)
|
||||||
|
|
||||||
|
|
||||||
@service_router.post(
|
@service_router.post(
|
||||||
'/categories/delete',
|
'/categories/delete',
|
||||||
response_model=ServiceDeleteCategoryResponse,
|
response_model=ServiceDeleteCategoryResponse,
|
||||||
@@ -163,6 +167,7 @@ async def delete_category(
|
|||||||
):
|
):
|
||||||
return await ServiceService(session).delete_category(request)
|
return await ServiceService(session).delete_category(request)
|
||||||
|
|
||||||
|
|
||||||
# endregion
|
# endregion
|
||||||
|
|
||||||
# region Types
|
# region Types
|
||||||
@@ -276,4 +281,33 @@ async def delete_price_category(
|
|||||||
):
|
):
|
||||||
return await ServiceService(session).delete_price_category(request)
|
return await ServiceService(session).delete_price_category(request)
|
||||||
|
|
||||||
|
|
||||||
|
# endregion
|
||||||
|
|
||||||
|
# region Exports
|
||||||
|
|
||||||
|
@service_router.get(
|
||||||
|
'/export-list/pdf',
|
||||||
|
operation_id='export_list_pdf',
|
||||||
|
|
||||||
|
)
|
||||||
|
async def export_list_pdf(
|
||||||
|
session: SessionDependency,
|
||||||
|
):
|
||||||
|
pdf_file: BytesIO = await PriceListPdfGenerator(session).create_price_list_pdf()
|
||||||
|
return Response(pdf_file.getvalue(), media_type='application/pdf')
|
||||||
|
|
||||||
|
|
||||||
|
@service_router.get(
|
||||||
|
'/export-list/excel',
|
||||||
|
operation_id='export_list_excel',
|
||||||
|
|
||||||
|
)
|
||||||
|
async def export_list_excel(
|
||||||
|
session: SessionDependency,
|
||||||
|
):
|
||||||
|
excel_file: BytesIO = await ServiceExcelExporter(session).generate_excel()
|
||||||
|
return Response(excel_file.getvalue(),
|
||||||
|
media_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
|
||||||
|
|
||||||
# endregion
|
# endregion
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user