117 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.3 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 *
 | 
						|
from services.auth import authorized_user, guest_user
 | 
						|
from services.barcode import BarcodeService
 | 
						|
 | 
						|
barcode_router = APIRouter(
 | 
						|
    prefix='/barcode',
 | 
						|
    tags=['barcode'],
 | 
						|
    dependencies=[Depends(guest_user)]
 | 
						|
)
 | 
						|
 | 
						|
 | 
						|
# 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)
 | 
						|
 | 
						|
 | 
						|
@barcode_router.post(
 | 
						|
    '/template/delete',
 | 
						|
    response_model=BarcodeTemplateDeleteResponse,
 | 
						|
    operation_id='delete_barcode_template'
 | 
						|
)
 | 
						|
async def delete_barcode_template(
 | 
						|
        request: BarcodeTemplateDeleteRequest,
 | 
						|
        session: Annotated[AsyncSession, Depends(get_session)]
 | 
						|
):
 | 
						|
    return await BarcodeService(session).delete_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
 | 
						|
 | 
						|
# region Template size
 | 
						|
@barcode_router.get(
 | 
						|
    '/template/size/get-all',
 | 
						|
    response_model=GetAllBarcodeTemplateSizesResponse,
 | 
						|
    operation_id='get_all_barcode_template_sizes'
 | 
						|
)
 | 
						|
async def get_all_barcode_template_sizes(
 | 
						|
        session: Annotated[AsyncSession, Depends(get_session)]
 | 
						|
):
 | 
						|
    return await BarcodeService(session).get_all_barcode_template_sizes()
 | 
						|
# endregion
 |