Files
Fulfillment-Backend/routers/barcode.py
2024-05-07 08:06:51 +03:00

95 lines
3.0 KiB
Python

from typing import Annotated
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from backend.session import get_session
from schemas.barcode import (GetBarcodeTemplateByIdResponse,
GetBarcodeTemplateByIdRequest,
BarcodeTemplateCreateResponse,
BarcodeTemplateCreateRequest, GetAllBarcodeTemplateAttributesResponse,
CreateBarcodeTemplateAttributeResponse, CreateBarcodeTemplateAttributeRequest,
BarcodeTemplateUpdateResponse, BarcodeTemplateUpdateRequest,
GetAllBarcodeTemplatesResponse)
from services.barcode import BarcodeService
barcode_router = APIRouter(
prefix='/barcode',
tags=['barcode'],
)
# region Templates
@barcode_router.get(
'/template/get',
response_model=GetBarcodeTemplateByIdResponse,
operation_id='get_barcode_template_by_id'
)
async def get_barcode_template_by_id(
request: GetBarcodeTemplateByIdRequest,
session: Annotated[AsyncSession, Depends(get_session)]
):
return await BarcodeService(session).get_barcode_template_by_id(request)
@barcode_router.get(
'/template/get-all',
response_model=GetAllBarcodeTemplatesResponse,
operation_id='get_all_barcode_templates'
)
async def get_all_barcode_templates(
session: Annotated[AsyncSession, Depends(get_session)]
):
return await BarcodeService(session).get_all_barcode_templates()
@barcode_router.post(
'/template/create',
response_model=BarcodeTemplateCreateResponse,
operation_id='create_barcode_template'
)
async def create_barcode_template(
request: BarcodeTemplateCreateRequest,
session: Annotated[AsyncSession, Depends(get_session)]
):
return await BarcodeService(session).create_barcode_template(request)
@barcode_router.post(
'/template/update',
response_model=BarcodeTemplateUpdateResponse,
operation_id='update_barcode_template'
)
async def update_barcode_template(
request: BarcodeTemplateUpdateRequest,
session: Annotated[AsyncSession, Depends(get_session)]
):
return await BarcodeService(session).update_barcode_template(request)
# endregion
# region Template attributes
@barcode_router.get(
'/template/attribute/get-all',
response_model=GetAllBarcodeTemplateAttributesResponse,
operation_id='get_all_barcode_template_attributes'
)
async def get_all_barcode_template_attributes(
session: Annotated[AsyncSession, Depends(get_session)]
):
return await BarcodeService(session).get_all_barcode_template_attributes()
@barcode_router.post(
'/template/attribute/create',
response_model=CreateBarcodeTemplateAttributeResponse,
operation_id='create_barcode_template_attribute'
)
async def create_barcode_template_attribute(
request: CreateBarcodeTemplateAttributeRequest,
session: Annotated[AsyncSession, Depends(get_session)]
):
return await BarcodeService(session).create_barcode_template_attribute(request)
# endregion