Files
Crm-Backend/routers/status.py

66 lines
1.5 KiB
Python

from fastapi import APIRouter, Path
from backend.dependecies import SessionDependency
from schemas.status import (
UpdateStatusRequest,
UpdateStatusResponse,
GetStatusesResponse,
CreateStatusResponse,
CreateStatusRequest,
DeleteStatusResponse,
)
from services import StatusService
status_router = APIRouter(
tags=["status"],
)
@status_router.get(
"/{boardId}",
response_model=GetStatusesResponse,
operation_id="get_statuses",
)
async def get_statuses(
session: SessionDependency,
board_id: int = Path(alias="boardId"),
):
return await StatusService(session).get_statuses(board_id)
@status_router.post(
"/",
response_model=CreateStatusResponse,
operation_id="create_status",
)
async def create_status(
session: SessionDependency,
request: CreateStatusRequest,
):
return await StatusService(session).create_status(request)
@status_router.patch(
"/{statusId}",
response_model=UpdateStatusResponse,
operation_id="update_status",
)
async def update_status(
session: SessionDependency,
request: UpdateStatusRequest,
status_id: int = Path(alias="statusId"),
):
return await StatusService(session).update_status(status_id, request)
@status_router.delete(
"/{statusId}",
response_model=DeleteStatusResponse,
operation_id="delete_status",
)
async def delete_status(
session: SessionDependency,
status_id: int = Path(alias="statusId"),
):
return await StatusService(session).delete_status(status_id)