feat: refactor route structure and update FastAPI configuration

This commit is contained in:
2025-08-05 18:44:38 +03:00
parent 0aabf51aca
commit 453930251b
9 changed files with 482 additions and 79 deletions

0
routers/__init__.py Normal file
View File

34
routers/board.py Normal file
View File

@ -0,0 +1,34 @@
from fastapi import APIRouter, Path
from backend.dependecies import SessionDependency
from schemas.board import GetBoardsResponse, UpdateBoardRequest, UpdateBoardResponse
from services import BoardService
board_router = APIRouter(
tags=["board"],
)
@board_router.get(
"/{projectId}",
response_model=GetBoardsResponse,
operation_id="get_boards",
)
async def get_boards(
session: SessionDependency,
project_id: int = Path(alias="projectId"),
):
return await BoardService(session).get_boards(project_id)
@board_router.patch(
"/{boardId}",
response_model=UpdateBoardResponse,
operation_id="update_board",
)
async def update_board(
session: SessionDependency,
request: UpdateBoardRequest,
board_id: int = Path(alias="boardId"),
):
return await BoardService(session).update_board(board_id, request)

34
routers/deal.py Normal file
View File

@ -0,0 +1,34 @@
from fastapi import APIRouter, Path
from backend.dependecies import SessionDependency
from schemas.deal import GetDealsResponse, UpdateDealResponse, UpdateDealRequest
from services import DealService
deal_router = APIRouter(
tags=["deal"],
)
@deal_router.get(
"/{boardId}",
response_model=GetDealsResponse,
operation_id="get_deals",
)
async def get_deals(
session: SessionDependency,
board_id: int = Path(alias="boardId"),
):
return await DealService(session).get_deals(board_id)
@deal_router.patch(
"/{dealId}",
response_model=UpdateDealResponse,
operation_id="update_deal",
)
async def update_deal(
session: SessionDependency,
request: UpdateDealRequest,
deal_id: int = Path(alias="dealId"),
):
return await DealService(session).update_deal(deal_id, request)

20
routers/project.py Normal file
View File

@ -0,0 +1,20 @@
from fastapi import APIRouter
from backend.dependecies import SessionDependency
from schemas.project import GetProjectsResponse
from services import ProjectService
project_router = APIRouter(
tags=["project"],
)
@project_router.get(
"/",
response_model=GetProjectsResponse,
operation_id="get_projects",
)
async def get_projects(
session: SessionDependency,
):
return await ProjectService(session).get_projects()

38
routers/status.py Normal file
View File

@ -0,0 +1,38 @@
from fastapi import APIRouter, Path
from backend.dependecies import SessionDependency
from schemas.status import (
UpdateStatusRequest,
UpdateStatusResponse,
GetStatusesResponse,
)
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.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)