Files
Crm-Backend/routers/project.py

65 lines
1.4 KiB
Python

from fastapi import APIRouter, Path
from backend.dependecies import SessionDependency
from schemas.project import (
GetProjectsResponse,
CreateProjectResponse,
CreateProjectRequest,
UpdateProjectResponse,
UpdateProjectRequest,
DeleteProjectResponse,
)
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()
@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(
"/{pk}",
response_model=UpdateProjectResponse,
operation_id="update_project",
)
async def update_project(
session: SessionDependency,
request: UpdateProjectRequest,
pk: int = Path(),
):
return await ProjectService(session).update_project(pk, request)
@project_router.delete(
"/{pk}",
response_model=DeleteProjectResponse,
operation_id="delete_project",
)
async def delete_project(
session: SessionDependency,
pk: int = Path(),
):
return await ProjectService(session).delete_project(pk)