Files
Fulfillment-Backend/routers/status.py
2025-02-07 20:08:14 +04:00

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)