VEU.WathBody/1-docs/4-modules/m02-rest-api/api_specs/05-programs-active-get.md

1.8 KiB
Raw Permalink Blame History

Спецификация: GET /api/v1/programs/active (единица 6)

Назначение

Активная версия программы атлета (requirements Ф-8.5; телефон перечитывает программу после 409 или по запросу пользователя).

Запрос / ответ

  • Запрос: без параметров (атлет — из middleware).
  • 200:
{ "programId": 3, "versionId": "uuid", "version": 5,
  "basedOnVersion": 4, "author": "rules", "status": "active",
  "body": { "...схема LLM-планирования разд. 2, как в БД..." },
  "rationale": "«...»", "createdAt": "..." }

Errata (m10, 2026-10-19, сверка живым запросом): ключи — camelCase (серверная политика JsonNamingPolicy.CamelCase, WebAppStartup); ранняя редакция примера показывала snake_case. Полезное телефону: versionId, version, body (программа с weeks на верхнем уровне).

  • 404 — активной версии нет (программа не создана или все версии archived).
  • 401 — middleware.

Логика

  1. ProgramRepository.Select (программа атлета).
  2. ProgramVersionRepository.Select (p_program_id, p_status = "active").
  3. ProgramVersionRepository.Get (строка с body).
  4. Активной версии нет → 404 {"error": "no_active_program"}.

Тесты

# Проверка Ожидание
1 Есть активная версия 200, status = "active", body не пуст
2 Программы нет 404
3 Все версии archived 404
4 Программа другого атлета не видна (🛡) 404