VEU.WathBody/1-docs/4-modules/m07-fit-fetch/api_specs/03-cli-config.md

2.2 KiB
Raw Permalink Blame History

Спецификация 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).
  2. Валидация разд. 1 → нарушение: stderr-сообщение, код 1.
  3. FitFetcher.FetchNew(limit: 20) → stdout fetch: скачано N, пропущено M, сбоев K:
    • GarminAuthException → stderr + подсказка про --mode import (fallback, О-1-А), код 2;
    • Failed > 0 → код 2; иначе 0.
  4. Расписание — внешний планировщик ОС вызывает команду каждые 15 минут (ОВ-4; в коде планировщика нет).

3. Заметки

  • --mode fetch не выполняет serve-валидацию (Api.Key и пр.) — свой набор обязательных ключей (как import);
  • только силовые (strength_training) скачиваются; прочие типы пропускаются без скачивания (Ф-8.1).