Files
vidconf/docs/api/teams.md

4.1 KiB
Raw Blame History

Справочник команд

Публичный API для получения списка команд. Для CRUD операций над командами см. Администраторский API.

Быстрый старт

# Получить список команд
curl http://localhost:8000/api/v1/teams \
  -H "Authorization: Bearer $TOKEN"

Эндпоинты

GET /api/v1/teams

Получить полный справочник команд (отсортирован по названию).

Требует auth: JWT Bearer token

Response (200 OK):

[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Backend"
  },
  {
    "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
    "name": "Frontend"
  },
  {
    "id": "6ba7b811-9dad-11d1-80b4-00c04fd430c9",
    "name": "DevOps"
  }
]

Поля:

  • id — UUID команды
  • name — название (уникально)

Примечание: Список возвращается для всех аутентифицированных пользователей (не зависит от роли). Этот эндпоинт используется:

  • На странице профиля пользователя для выбора своей команды (PATCH /api/v1/users/me)
  • При создании конференции с приглашением участников (информационно, для фронтенда)
  • На администраторской странице управления пользователями

Использование

На странице профиля

Пользователь может выбрать команду из этого справочника и назначить себе через:

curl -X PATCH http://localhost:8000/api/v1/users/me \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"team_id":"550e8400-e29b-41d4-a716-446655440000"}'

Администратор

Администратор может управлять командами (создание, редактирование, удаление) через Администраторский API:

# Создать команду
curl -X POST http://localhost:8000/api/v1/admin/teams \
  -H "Authorization: Bearer $ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"QA"}'

# Переименовать команду
curl -X PATCH http://localhost:8000/api/v1/admin/teams/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer $ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"QA & Testing"}'

# Удалить команду
curl -X DELETE http://localhost:8000/api/v1/admin/teams/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer $ADMIN_TOKEN"

Типы данных

TeamOut

{
  "id": "uuid",
  "name": "string"
}

Примечания

  • Привязка опциональна: пользователь может работать без команды (team_id = null в профиле)
  • Каскадное удаление: при удалении команды пользователи, состоявшие в ней, остаются (ON DELETE SET NULL), их team_id становится null
  • Выбор при регистрации: настройка registration_team_choice (в администраторских настройках) определяет, виден ли выбор команды на публичной форме регистрации

Ссылки