feat: projects create, update, delete

This commit is contained in:
2025-08-13 15:01:22 +04:00
parent 71c0901909
commit 5e20da8356
4 changed files with 156 additions and 7 deletions

View File

@ -1,7 +1,14 @@
from fastapi import APIRouter
from fastapi import APIRouter, Query
from backend.dependecies import SessionDependency
from schemas.project import GetProjectsResponse
from schemas.project import (
GetProjectsResponse,
CreateProjectResponse,
CreateProjectRequest,
UpdateProjectResponse,
UpdateProjectRequest,
DeleteProjectResponse,
)
from services import ProjectService
project_router = APIRouter(
@ -18,3 +25,40 @@ async def get_projects(
session: SessionDependency,
):
return await ProjectService(session).get_projects()
@project_router.post(
"/",
response_model=CreateProjectResponse,
operation_id="create_project",
)
async def create_project(
session: SessionDependency,
request: CreateProjectRequest,
):
return await ProjectService(session).create_project(request)
@project_router.patch(
"/{projectId}",
response_model=UpdateProjectResponse,
operation_id="update_project",
)
async def update_project(
session: SessionDependency,
request: UpdateProjectRequest,
project_id: int = Query(alias="projectId"),
):
return await ProjectService(session).update_project(project_id, request)
@project_router.delete(
"/{projectId}",
response_model=DeleteProjectResponse,
operation_id="delete_project",
)
async def delete_project(
session: SessionDependency,
project_id: int = Query(alias="projectId"),
):
return await ProjectService(session).delete_project(project_id)