feat: departments and department sections

This commit is contained in:
2024-12-17 12:42:41 +04:00
parent e5712224e1
commit 144811ec87
6 changed files with 428 additions and 0 deletions

View File

@@ -17,3 +17,4 @@ from .work_shifts import work_shifts_router
from .statistics import statistics_router
from .transaction import transaction_router
from .shipping import shipping_router
from .department import department_router

131
routers/department.py Normal file
View File

@@ -0,0 +1,131 @@
from fastapi import APIRouter, Depends
from backend.dependecies import SessionDependency
from schemas.department import *
from services.auth import authorized_user
from services.department import DepartmentService
department_router = APIRouter(
prefix="/department",
tags=["department"],
dependencies=[Depends(authorized_user)]
)
@department_router.get(
"/",
operation_id="get_departments",
response_model=GetDepartmentsResponse,
)
async def get_departments(
session: SessionDependency,
):
return await DepartmentService(session).get_departments()
@department_router.post(
"/",
operation_id="create_department",
response_model=CreateDepartmentResponse,
)
async def create_department(
session: SessionDependency,
request: CreateDepartmentRequest,
):
return await DepartmentService(session).create_department(request)
@department_router.patch(
"/",
operation_id="update_department",
response_model=UpdateDepartmentResponse,
)
async def update_department(
session: SessionDependency,
request: UpdateDepartmentRequest,
):
return await DepartmentService(session).update_department(request)
@department_router.delete(
"/{department_id}",
operation_id="delete_department",
response_model=DeleteDepartmentResponse,
)
async def delete_department(
session: SessionDependency,
department_id: int,
):
return await DepartmentService(session).delete_department(department_id)
@department_router.post(
"/section",
operation_id="create_section",
response_model=CreateDepartmentSectionResponse,
)
async def create_section(
session: SessionDependency,
request: CreateDepartmentSectionRequest,
):
return await DepartmentService(session).create_department_section(request)
@department_router.patch(
"/section",
operation_id="update_section",
response_model=UpdateDepartmentSectionResponse,
)
async def update_section(
session: SessionDependency,
request: UpdateDepartmentSectionRequest,
):
return await DepartmentService(session).update_department_section(request)
@department_router.delete(
"/section/{section_id}",
operation_id="delete_section",
response_model=DeleteDepartmentSectionResponse,
)
async def delete_section(
session: SessionDependency,
section_id: int,
):
return await DepartmentService(session).delete_department_section(section_id)
@department_router.get(
"/users/{section_id}",
operation_id="get_available_users_for_section",
response_model=GetAvailableUsersForDepartmentSectionResponse,
)
async def get_available_users_for_department_section(
session: SessionDependency,
section_id: int,
):
return await DepartmentService(session).get_available_users_for_section(section_id)
@department_router.post(
"/users",
operation_id="add_user",
response_model=AddUserResponse,
)
async def add_user(
session: SessionDependency,
request: AddUserRequest,
):
return await DepartmentService(session).add_user(request)
@department_router.post(
"/users/delete",
operation_id="delete_user",
response_model=DeleteUserResponse,
)
async def delete_user(
session: SessionDependency,
request: DeleteUserRequest,
):
return await DepartmentService(session).delete_user(request)