1.8 KiB
1.8 KiB
Спецификация: 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.
Логика
ProgramRepository.Select(программа атлета).ProgramVersionRepository.Select(p_program_id,p_status = "active").ProgramVersionRepository.Get(строка сbody).- Активной версии нет →
404 {"error": "no_active_program"}.
Тесты
| # | Проверка | Ожидание |
|---|---|---|
| 1 | Есть активная версия | 200, status = "active", body не пуст |
| 2 | Программы нет | 404 |
| 3 | Все версии archived | 404 |
| 4 | Программа другого атлета не видна (🛡) | 404 |