20 lines
760 B
Python
20 lines
760 B
Python
# app/controllers/vacancies_router.py
|
|
from fastapi import APIRouter, Depends, status
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.database.session import get_db
|
|
from app.infrastructure.dependencies import require_auth_user
|
|
from app.infrastructure.vacancies_service import VacanciesService
|
|
from app.domain.entities.vacancies import VacancyCreate, VacancyRead
|
|
from app.domain.models import User
|
|
|
|
vacancies_router = APIRouter()
|
|
|
|
@vacancies_router.post('/', response_model=VacancyRead, status_code=status.HTTP_201_CREATED)
|
|
async def create_vacancy(
|
|
data: VacancyCreate,
|
|
db: AsyncSession = Depends(get_db),
|
|
user: User = Depends(require_auth_user)
|
|
):
|
|
service = VacanciesService(db)
|
|
return await service.create_opportunity(data, user) |