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)
|