feat(api): POST /admin/scrape/poi-sync — manual OSM POI sync trigger
This commit is contained in:
parent
a4e8fff5ac
commit
f81bd710c0
1 changed files with 17 additions and 0 deletions
|
|
@ -367,6 +367,23 @@ def list_logs(
|
|||
# ── Objective ETL (Антоновский SQLite → PG) ─────────────────────────────────
|
||||
|
||||
|
||||
@router.post("/poi-sync")
|
||||
def trigger_poi_sync(
|
||||
x_admin_token: Annotated[str | None, Header(alias="X-Admin-Token")] = None,
|
||||
) -> dict[str, Any]:
|
||||
"""Manual trigger для синхронизации OSM POI ЕКБ из Overpass API.
|
||||
|
||||
Обычно запускается еженедельно через beat (понед 3:00 МСК).
|
||||
Этот endpoint — для ad-hoc запуска (например после первого деплоя
|
||||
или при создании нового тестового участка).
|
||||
"""
|
||||
_check_token(x_admin_token)
|
||||
from app.workers.tasks.poi_sync import sync_osm_poi_ekb
|
||||
|
||||
result = sync_osm_poi_ekb.apply_async()
|
||||
return {"task_id": result.id, "queued_at": "now"}
|
||||
|
||||
|
||||
class TriggerObjectiveEtlRequest(BaseModel):
|
||||
sqlite_path: str | None = Field(
|
||||
default=None,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue