feat: departments and department sections
This commit is contained in:
@@ -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
131
routers/department.py
Normal 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)
|
||||
Reference in New Issue
Block a user