Files

38 lines
1.2 KiB
Python

"""Справочники: дополнения и фракции (для всех авторизованных)."""
from __future__ import annotations
from fastapi import APIRouter, Depends
from sqlmodel import Session
from app.auth.deps import get_current_user
from app.db.session import get_session
from app.models import User
from app.schemas import api as s
from app.services import faction_service
router = APIRouter(tags=["reference"])
@router.get("/expansions", response_model=list[s.ExpansionRead])
def list_expansions(
session: Session = Depends(get_session),
_user: User = Depends(get_current_user),
) -> list[s.ExpansionRead]:
return [
s.ExpansionRead(id=e.id, code=e.code, name_ru=e.name_ru, is_base=e.is_base) # type: ignore[arg-type]
for e in faction_service.list_expansions(session)
]
@router.get("/factions", response_model=list[s.FactionRead])
def list_factions(
session: Session = Depends(get_session),
_user: User = Depends(get_current_user),
) -> list[s.FactionRead]:
return [
s.FactionRead(
id=f.id, code=f.code, name_ru=f.name_ru, expansion_id=f.expansion_id # type: ignore[arg-type]
)
for f in faction_service.list_factions(session)
]