From c862544ae03c0c81673b1a0d16ab9c2eb04a4d59 Mon Sep 17 00:00:00 2001 From: AlexSserb Date: Sat, 23 Aug 2025 10:37:42 +0400 Subject: [PATCH] feat: common style for crud endpoints --- routers/board.py | 12 ++++++------ routers/project.py | 14 +++++++------- routers/status.py | 12 ++++++------ schemas/board.py | 6 +++--- schemas/project.py | 6 +++--- schemas/status.py | 6 +++--- services/board.py | 6 +++--- services/project.py | 6 +++--- services/status.py | 6 +++--- 9 files changed, 37 insertions(+), 37 deletions(-) diff --git a/routers/board.py b/routers/board.py index d139fa4..259f479 100644 --- a/routers/board.py +++ b/routers/board.py @@ -41,25 +41,25 @@ async def create_board( @board_router.patch( - "/{boardId}", + "/{pk}", response_model=UpdateBoardResponse, operation_id="update_board", ) async def update_board( session: SessionDependency, request: UpdateBoardRequest, - board_id: int = Path(alias="boardId"), + pk: int = Path(), ): - return await BoardService(session).update_board(board_id, request) + return await BoardService(session).update_board(pk, request) @board_router.delete( - "/{boardId}", + "/{pk}", response_model=DeleteBoardResponse, operation_id="delete_board", ) async def delete_board( session: SessionDependency, - board_id: int = Path(alias="boardId"), + pk: int = Path(), ): - return await BoardService(session).delete_board(board_id) + return await BoardService(session).delete_board(pk) diff --git a/routers/project.py b/routers/project.py index 9a006e6..a5cd8f4 100644 --- a/routers/project.py +++ b/routers/project.py @@ -1,4 +1,4 @@ -from fastapi import APIRouter, Query +from fastapi import APIRouter, Path from backend.dependecies import SessionDependency from schemas.project import ( @@ -40,25 +40,25 @@ async def create_project( @project_router.patch( - "/{projectId}", + "/{pk}", response_model=UpdateProjectResponse, operation_id="update_project", ) async def update_project( session: SessionDependency, request: UpdateProjectRequest, - project_id: int = Query(alias="projectId"), + pk: int = Path(), ): - return await ProjectService(session).update_project(project_id, request) + return await ProjectService(session).update_project(pk, request) @project_router.delete( - "/{projectId}", + "/{pk}", response_model=DeleteProjectResponse, operation_id="delete_project", ) async def delete_project( session: SessionDependency, - project_id: int = Query(alias="projectId"), + pk: int = Path(), ): - return await ProjectService(session).delete_project(project_id) + return await ProjectService(session).delete_project(pk) diff --git a/routers/status.py b/routers/status.py index 7ce49d8..101df59 100644 --- a/routers/status.py +++ b/routers/status.py @@ -41,25 +41,25 @@ async def create_status( @status_router.patch( - "/{statusId}", + "/{pk}", response_model=UpdateStatusResponse, operation_id="update_status", ) async def update_status( session: SessionDependency, request: UpdateStatusRequest, - status_id: int = Path(alias="statusId"), + pk: int = Path(), ): - return await StatusService(session).update_status(status_id, request) + return await StatusService(session).update_status(pk, request) @status_router.delete( - "/{statusId}", + "/{pk}", response_model=DeleteStatusResponse, operation_id="delete_status", ) async def delete_status( session: SessionDependency, - status_id: int = Path(alias="statusId"), + pk: int = Path(), ): - return await StatusService(session).delete_status(status_id) + return await StatusService(session).delete_status(pk) diff --git a/schemas/board.py b/schemas/board.py index 6eab509..c364b47 100644 --- a/schemas/board.py +++ b/schemas/board.py @@ -29,11 +29,11 @@ class UpdateBoardSchema(BaseSchema): class CreateBoardRequest(BaseSchema): - board: CreateBoardSchema + entity: CreateBoardSchema class UpdateBoardRequest(BaseSchema): - board: UpdateBoardSchema + entity: UpdateBoardSchema # endregion @@ -46,7 +46,7 @@ class GetBoardsResponse(BaseSchema): class CreateBoardResponse(BaseResponse): - board: BoardSchema + entity: BoardSchema class UpdateBoardResponse(BaseResponse): diff --git a/schemas/project.py b/schemas/project.py index f758c9e..bd93829 100644 --- a/schemas/project.py +++ b/schemas/project.py @@ -25,11 +25,11 @@ class UpdateProjectSchema(BaseSchema): class CreateProjectRequest(BaseSchema): - project: CreateProjectSchema + entity: CreateProjectSchema class UpdateProjectRequest(BaseSchema): - project: UpdateProjectSchema + entity: UpdateProjectSchema # endregion @@ -42,7 +42,7 @@ class GetProjectsResponse(BaseSchema): class CreateProjectResponse(BaseResponse): - project: ProjectSchema + entity: ProjectSchema class UpdateProjectResponse(BaseResponse): diff --git a/schemas/status.py b/schemas/status.py index ba0e906..baf1a08 100644 --- a/schemas/status.py +++ b/schemas/status.py @@ -29,11 +29,11 @@ class UpdateStatusSchema(BaseSchema): class CreateStatusRequest(BaseSchema): - status: CreateStatusSchema + entity: CreateStatusSchema class UpdateStatusRequest(BaseSchema): - status: UpdateStatusSchema + entity: UpdateStatusSchema # endregion @@ -46,7 +46,7 @@ class GetStatusesResponse(BaseSchema): class CreateStatusResponse(BaseResponse): - status: StatusSchema + entity: StatusSchema class UpdateStatusResponse(BaseResponse): diff --git a/services/board.py b/services/board.py index 05fa8e9..d118807 100644 --- a/services/board.py +++ b/services/board.py @@ -24,9 +24,9 @@ class BoardService: ) async def create_board(self, request: CreateBoardRequest) -> CreateBoardResponse: - board = await self.repository.create(request.board) + board = await self.repository.create(request.entity) return CreateBoardResponse( - board=BoardSchema.model_validate(board), + entity=BoardSchema.model_validate(board), message="Доска успешно создана", ) @@ -37,7 +37,7 @@ class BoardService: if not board: raise HTTPException(status_code=404, detail="Доска не найдена") - await self.repository.update(board, request.board) + await self.repository.update(board, request.entity) return UpdateBoardResponse(message="Доска успешно обновлена") async def delete_board(self, board_id: int) -> DeleteBoardResponse: diff --git a/services/project.py b/services/project.py index c0975c1..63d4c88 100644 --- a/services/project.py +++ b/services/project.py @@ -26,9 +26,9 @@ class ProjectService: async def create_project( self, request: CreateProjectRequest ) -> CreateProjectResponse: - project = await self.repository.create(request.project) + project = await self.repository.create(request.entity) return CreateProjectResponse( - project=ProjectSchema.model_validate(project), + entity=ProjectSchema.model_validate(project), message="Проект успешно создан", ) @@ -39,7 +39,7 @@ class ProjectService: if not project: raise HTTPException(status_code=404, detail="Проект не найден") - await self.repository.update(project, request.project) + await self.repository.update(project, request.entity) return UpdateProjectResponse(message="Проект успешно обновлен") async def delete_project(self, project_id: int) -> DeleteProjectResponse: diff --git a/services/status.py b/services/status.py index 050b6c6..4bf2b0c 100644 --- a/services/status.py +++ b/services/status.py @@ -24,9 +24,9 @@ class StatusService: ) async def create_status(self, request: CreateStatusRequest) -> CreateStatusResponse: - status = await self.repository.create(request.status) + status = await self.repository.create(request.entity) return CreateStatusResponse( - status=StatusSchema.model_validate(status), + entity=StatusSchema.model_validate(status), message="Статус успешно создан", ) @@ -35,7 +35,7 @@ class StatusService: if not status: raise HTTPException(status_code=404, detail="Статус не найден") - await self.repository.update(status, request.status) + await self.repository.update(status, request.entity) return UpdateBoardResponse(message="Статус успешно обновлен") async def delete_status(self, status_id: int) -> DeleteStatusResponse: