25 lines
757 B
Python
25 lines
757 B
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy import select
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.db import get_db
|
|
from app.deps import get_current_user
|
|
from app.models import JobTitle, User
|
|
from app.schemas.job_title import JobTitleResponse
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("", response_model=list[JobTitleResponse])
|
|
def list_job_titles(
|
|
_: User = Depends(get_current_user),
|
|
db: Session = Depends(get_db),
|
|
) -> list[JobTitleResponse]:
|
|
items = db.scalars(
|
|
select(JobTitle).where(JobTitle.is_active == True).order_by(JobTitle.sort_order, JobTitle.id) # noqa: E712
|
|
).all()
|
|
return [
|
|
JobTitleResponse(id=jt.id, name=jt.name, sort_order=jt.sort_order, is_active=jt.is_active)
|
|
for jt in items
|
|
]
|