2.2 KiB
2.2 KiB
Спецификация 03: --mode fetch и конфигурация
Источники: requirements 2.3 (режимы/коды), tech-req 4.2 (Garmin.*), ОВ-4 (расписание — внешний планировщик ОС).
1. Конфиг (ServerConfig, секция Garmin)
| Ключ | Умолчание | Семантика |
|---|---|---|
Garmin.Login |
пусто | учётная запись Garmin Connect владельца |
Garmin.Password |
пусто | пароль (🛡 только в конфиге, не в логах) |
Garmin.AthleteName |
пусто | имя атлета (src.athlete.name), на которого пишутся факты fetch (решение гейта 1.3; изоляция 🛡1) |
Garmin.DownloadDir |
data\fit |
папка скачанных файлов (кэш по activityId) |
Garmin.BaseUrl |
https://connect.garmin.com |
замена точек входа для тестов/прокси |
Загрузка — по образцу Import.*; валидация при --mode fetch:
Login/Password/AthleteName непусты, DownloadDir создаётся, атлет
существует — иначе код 1.
2. CLI (--mode fetch в Program.cs Web)
- Конфиг прочитан (ошибка чтения → 1).
- Валидация разд. 1 → нарушение: stderr-сообщение, код 1.
FitFetcher.FetchNew(limit: 20)→ stdoutfetch: скачано N, пропущено M, сбоев K:GarminAuthException→ stderr + подсказка про--mode import(fallback, О-1-А), код 2;Failed > 0→ код 2; иначе 0.
- Расписание — внешний планировщик ОС вызывает команду каждые 15 минут (ОВ-4; в коде планировщика нет).
3. Заметки
--mode fetchне выполняет serve-валидацию (Api.Key и пр.) — свой набор обязательных ключей (как import);- только силовые (
strength_training) скачиваются; прочие типы пропускаются без скачивания (Ф-8.1).