Skip to content

SyncGateLaunchpoolSnapshot

Purpose

Запрашивает Gate Launchpool project-list, валидирует ответ и ingests snapshot через SQL-контракт.

Код: internal/worker/activities/sync_gate_launchpool.go

Input / Output

Input (models.SyncGateLaunchpoolInput): - page - page_size - status (optional)

Output (models.SyncGateLaunchpoolResult): - snapshot_at - projects_seen, projects_upserted - subpools_seen, subpools_upserted - quarantine_rows

External Dependencies

  • API: https://www.gate.com/apiw/v2/earn/launch-pool/project-list
  • DB: SQL function ingest_gate_launchpool_snapshot($1::jsonb) + fct_gate_launchpool_*

Idempotency

  • Ingestion SQL использует upsert-модель по ключам snapshot таблиц.

Error Taxonomy

  • database pool is not initialized
  • gate_access_denied (non-retryable)
  • api_error, parse_error, SQL ingest ошибки

Callers

Observability

  • Логи: gate_launchpool_mapping_coverage, gate launchpool api request failed