68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.8 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.status import *
 | 
						|
from services.auth import guest_user, authorized_user
 | 
						|
from services.status import StatusService
 | 
						|
 | 
						|
status_router = APIRouter(
 | 
						|
    prefix="/status",
 | 
						|
    tags=["status"],
 | 
						|
    dependencies=[Depends(guest_user)]
 | 
						|
)
 | 
						|
 | 
						|
 | 
						|
@status_router.post(
 | 
						|
    '/',
 | 
						|
    response_model=CreateStatusResponse,
 | 
						|
    operation_id="create_status",
 | 
						|
    dependencies=[Depends(authorized_user)]
 | 
						|
)
 | 
						|
async def create_status(
 | 
						|
        session: Annotated[AsyncSession, Depends(get_session)],
 | 
						|
        request: CreateStatusRequest,
 | 
						|
):
 | 
						|
    return await StatusService(session).create_status(request)
 | 
						|
 | 
						|
 | 
						|
@status_router.patch(
 | 
						|
    '/',
 | 
						|
    response_model=UpdateStatusResponse,
 | 
						|
    operation_id="update_status",
 | 
						|
    dependencies=[Depends(authorized_user)]
 | 
						|
)
 | 
						|
async def update_status(
 | 
						|
        session: Annotated[AsyncSession, Depends(get_session)],
 | 
						|
        request: UpdateStatusRequest,
 | 
						|
):
 | 
						|
    return await StatusService(session).update_status(request)
 | 
						|
 | 
						|
 | 
						|
@status_router.patch(
 | 
						|
    '/order',
 | 
						|
    response_model=UpdateStatusOrderResponse,
 | 
						|
    operation_id="update_status_order",
 | 
						|
    dependencies=[Depends(authorized_user)]
 | 
						|
)
 | 
						|
async def update_status_order(
 | 
						|
        session: Annotated[AsyncSession, Depends(get_session)],
 | 
						|
        request: UpdateStatusOrderRequest,
 | 
						|
):
 | 
						|
    return await StatusService(session).update_status_order(request)
 | 
						|
 | 
						|
 | 
						|
@status_router.delete(
 | 
						|
    '/{status_id}',
 | 
						|
    response_model=DeleteStatusResponse,
 | 
						|
    operation_id="delete_status",
 | 
						|
    dependencies=[Depends(authorized_user)]
 | 
						|
)
 | 
						|
async def delete_status(
 | 
						|
        session: Annotated[AsyncSession, Depends(get_session)],
 | 
						|
        status_id: int,
 | 
						|
):
 | 
						|
    return await StatusService(session).delete_status(status_id)
 |