Files
2025-03-05 19:34:16 +03:00

99 lines
2.4 KiB
Python

from fastapi import APIRouter, Depends, UploadFile
from backend.dependecies import SessionDependency, CurrentUserDependency
from schemas.user import *
from services.auth import authorized_user
from services.user import UserService
user_router = APIRouter(
prefix="/user",
tags=["user"],
dependencies=[Depends(authorized_user)]
)
@user_router.get(
'/get-all',
response_model=GetAllUsersResponse,
operation_id='get_all_users'
)
async def get_all(
session: SessionDependency
):
return await UserService(session).get_all()
@user_router.post(
'/update',
response_model=UpdateUserResponse,
operation_id='update_user'
)
async def update(
session: SessionDependency,
request: UpdateUserRequest
):
return await UserService(session).update(request)
@user_router.post(
'/update/department-sections/{user_id}',
response_model=UpdateUserDepartmentSectionsResponse,
operation_id='update_user_department_sections'
)
async def update_user_department_sections(
session: SessionDependency,
user_id: int,
request: UpdateUserDepartmentSectionsRequest,
):
return await UserService(session).update_department_sections(user_id, request)
@user_router.post(
'/create',
response_model=CreateUserResponse,
operation_id='create_user'
)
async def create(
session: SessionDependency,
request: CreateUserRequest
):
return await UserService(session).create(request)
@user_router.get(
'/get-managers',
response_model=GetManagersResponse,
operation_id='get_managers',
)
async def get_managers(
session: SessionDependency,
):
return await UserService(session).get_managers()
@user_router.post(
'/passport-images/upload/{user_id}',
response_model=UploadPassportImageResponse,
operation_id='upload_passport_image'
)
async def upload_passport_image(
user_id: int,
upload_file: UploadFile,
session: SessionDependency,
):
file_bytes = upload_file.file.read()
return await UserService(session).upload_passport_image(user_id, file_bytes)
@user_router.post(
'/generate-invite-code',
response_model=GenerateInviteCodeResponse,
operation_id='generate_invite_code'
)
async def generate_invite_code(
session: SessionDependency,
request:GenerateInviteCodeRequest,
user: CurrentUserDependency
):
return await UserService(session).generate_invite_code(user, request)