- 11 записей типа goal закрыты с причиной, называющей задачи-наследники; ROADMAP.md удалён, индекс остался один — BACKLOG.md; - 33 записи переписаны: ссылка «Двигает пункты N «Завершения» цели» уступила место прямому утверждению — без целей номера пунктов вели в никуда; - шапка BACKLOG.md размечена парой <!-- стадия -->, порядок строк теперь объявлен зависимостью, а не важностью.
39 lines
2.9 KiB
Markdown
39 lines
2.9 KiB
Markdown
# ✨ Сделать экран загрузки записи и её состояния
|
|
|
|
- **Тип:** feature
|
|
- **Категория:** Очередь — Первое, ради чего приложение открывают; требует каркаса и контракта, оба выше.
|
|
- **Зачем:** Первое, ради чего приложение открывают: отдать файл и увидеть, что с ним происходит.
|
|
|
|
Экран принимает файл и заводит задачу, а её состояние обновляется само, пока
|
|
задача не дошла до `done` или `failed`.
|
|
|
|
Берётся после `spa-skeleton` и `json-api-for-spa`.
|
|
|
|
## Затрагивает
|
|
|
|
- новый экран приложения: выбор файла, отправка, показ состояния;
|
|
- опрос состояния задачи и его остановка;
|
|
- показ отказа человекочитаемым текстом из контракта API;
|
|
- предел размера загружаемого файла на стороне приложения и на стороне сервера
|
|
(`router.MaxMultipartMemory`, сегодня 32 МиБ);
|
|
- `docs/database.md` — частота опроса числом.
|
|
|
|
## Критерии приёмки
|
|
|
|
- Выбранный файл уходит на сервер и заводит задачу; экран сразу показывает её
|
|
состояние. Оракул — тест экрана на подставном API: после отправки на экране
|
|
идентификатор задачи и состояние `created`.
|
|
- Опрос сам прекращается, когда задача дошла до `done` или `failed`. Оракул —
|
|
тест: после ответа `done` новых запросов к API нет.
|
|
- Отказ задачи показывается человекочитаемым текстом, а не кодом и не сырой
|
|
ошибкой. Оракул — тест на ответе с состоянием `failed`.
|
|
- Файл больше предела отклоняется на экране до отправки, с названным числом, и
|
|
предел экран берёт у сервера, а не держит своей константой. Оракул — тест на
|
|
файле сверх предела: запроса на загрузку нет, на экране предел числом, и
|
|
смена предела на стороне сервера меняет это число.
|
|
|
|
## Рамки
|
|
|
|
Записи звука в приложении не делаем — файл выбирают в системном диалоге. Список
|
|
прошлых записей не делаем, это `records-list-screen`.
|