Первоначальная версия VidConf
This commit is contained in:
31
backend/api/teams.py
Normal file
31
backend/api/teams.py
Normal file
@@ -0,0 +1,31 @@
|
||||
"""Роутер справочника команд для аутентифицированных пользователей.
|
||||
|
||||
Отдельно от `/admin/teams` (админ-only CRUD): здесь только чтение полного
|
||||
списка — нужно странице профиля (выбор команды). В отличие от
|
||||
`GET /auth/registration-options`, список НЕ гасится тумблером
|
||||
`registration_team_choice` (та настройка — только про публичную форму
|
||||
регистрации, не про профиль уже аутентифицированного пользователя).
|
||||
"""
|
||||
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from api.deps import get_current_user
|
||||
from core.db import get_session
|
||||
from models.user import User
|
||||
from repositories.admin import TeamRepository
|
||||
from schemas.admin import TeamOut
|
||||
|
||||
router = APIRouter(prefix="/api/v1/teams", tags=["teams"])
|
||||
|
||||
|
||||
@router.get("", response_model=list[TeamOut])
|
||||
async def list_teams(
|
||||
user: Annotated[User, Depends(get_current_user)],
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
) -> list[TeamOut]:
|
||||
"""Полный справочник команд, отсортированный по названию (выбор команды в профиле)."""
|
||||
items, _ = await TeamRepository(session).list_all()
|
||||
return [TeamOut.model_validate(team) for team in items]
|
||||
Reference in New Issue
Block a user