feat: servicex export
This commit is contained in:
@@ -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
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user