99 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			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)
 |