feat: servicex export

This commit is contained in:
2024-10-11 21:38:33 +03:00
parent 3db54fdb13
commit ab5fc94e1b
2 changed files with 80 additions and 46 deletions

View File

@@ -1,6 +1,7 @@
from io import BytesIO
from typing import Annotated
import lexorank
from fastapi import APIRouter, Depends, Response
from sqlalchemy.ext.asyncio import AsyncSession
@@ -8,6 +9,7 @@ import enums.service
from backend.dependecies import SessionDependency
from backend.session import get_session
from generators.price_list_pdf_generator.generator import PriceListPdfGenerator
from generators.services_excel_generator import ServiceExcelExporter
from schemas.base import BaseEnumListSchema
from schemas.service import *
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()
return Response(pdf_file.getvalue(), media_type='application/pdf')
# endregion
# region Categories
@@ -151,6 +154,7 @@ async def reorder_category(
):
return await ServiceService(session).reorder_category(request)
@service_router.post(
'/categories/delete',
response_model=ServiceDeleteCategoryResponse,
@@ -163,6 +167,7 @@ async def delete_category(
):
return await ServiceService(session).delete_category(request)
# endregion
# region Types
@@ -276,4 +281,33 @@ async def delete_price_category(
):
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