44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
from typing import List
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.database.session import get_db
|
|
from app.domain.entities.applicant_educations import ApplicantEducationRead, ApplicantEducationCreate
|
|
from app.domain.models import User
|
|
from app.infrastructure.applicant_educations_service import ApplicantEducationsService
|
|
from app.infrastructure.dependencies import require_auth_user
|
|
|
|
applicant_education_router = APIRouter()
|
|
|
|
|
|
@applicant_education_router.get(
|
|
'/{applicant_id}/',
|
|
response_model=List[ApplicantEducationRead],
|
|
summary='Returns applicant educations by applicant id',
|
|
description='Returns applicant educations by applicant id',
|
|
)
|
|
async def get_applicant_educations(
|
|
applicant_id: int,
|
|
db: AsyncSession = Depends(get_db),
|
|
user: User = Depends(require_auth_user)
|
|
):
|
|
applicant_educations_service = ApplicantEducationsService(db)
|
|
return await applicant_educations_service.get_by_applicant_id(applicant_id, user)
|
|
|
|
|
|
@applicant_education_router.post(
|
|
'/{applicant_id}/',
|
|
response_model=List[ApplicantEducationRead],
|
|
summary='Replace applicant educations by applicant id',
|
|
description='Replace applicant educations by applicant id',
|
|
)
|
|
async def replace_applicant_educations(
|
|
applicant_id: int,
|
|
applicant_educations: List[ApplicantEducationCreate],
|
|
db: AsyncSession = Depends(get_db),
|
|
user: User = Depends(require_auth_user),
|
|
):
|
|
applicant_educations_service = ApplicantEducationsService(db)
|
|
return await applicant_educations_service.replace_applicant_educations(applicant_educations, applicant_id, user)
|