Spaces:
Runtime error
Runtime error
| # PATH: bot/integrations/cf_worker1.py | |
| from __future__ import annotations | |
| from bot.config import Workers | |
| from bot.integrations.http import post_json | |
| def _h(): | |
| return { | |
| "Authorization": f"Bearer {Workers.BOT_BACKEND_KEY}", | |
| "Content-Type": "application/json", | |
| } | |
| def _unwrap(r: dict) -> dict: | |
| """ | |
| post_json() may return: | |
| A) direct backend json -> {"ok": true, ...} | |
| B) wrapper -> {"ok": true, "status": 200, "data": {...}} | |
| handlers.py expects (A), so convert (B) -> (A) | |
| """ | |
| if isinstance(r, dict) and isinstance(r.get("data"), dict): | |
| data = r["data"] | |
| if "ok" not in data and "ok" in r: | |
| data["ok"] = r["ok"] | |
| return data | |
| return r | |
| async def profile_add( | |
| tg_id: int, | |
| client_id: str, | |
| client_secret: str, | |
| label: str = "main", | |
| ttl_sec: int = 600, | |
| ) -> dict: | |
| r = await post_json( | |
| f"{Workers.WORKER1_URL}/api/profile/add", | |
| _h(), | |
| { | |
| "tg_id": str(tg_id), | |
| "client_id": client_id, | |
| "client_secret": client_secret, | |
| "label": label, | |
| "ttl_sec": ttl_sec, | |
| }, | |
| ) | |
| return _unwrap(r) | |
| # existing (kept) | |
| async def profile_list(tg_id: int) -> dict: | |
| r = await post_json( | |
| f"{Workers.WORKER1_URL}/api/profile/list", | |
| _h(), | |
| {"tg_id": str(tg_id)}, | |
| ) | |
| return _unwrap(r) | |
| # existing (kept) | |
| async def profile_set_default(tg_id: int, profile_id: str) -> dict: | |
| r = await post_json( | |
| f"{Workers.WORKER1_URL}/api/profile/set_default", | |
| _h(), | |
| {"tg_id": str(tg_id), "profile_id": profile_id}, | |
| ) | |
| return _unwrap(r) | |
| # ✅ Added: handlers.py expects this name | |
| async def profile_check_auth(tg_id: int, profile_id: str, ttl_sec: int = 600, force: bool = False) -> dict: | |
| r = await post_json( | |
| f"{Workers.WORKER1_URL}/api/profile/login_link", | |
| _h(), | |
| {"tg_id": str(tg_id), "profile_id": str(profile_id), "ttl_sec": int(ttl_sec), "force": bool(force)}, | |
| ) | |
| return _unwrap(r) | |
| # ✅ Added: handlers.py expects this name | |
| async def profile_delete(tg_id: int, profile_id: str) -> dict: | |
| r = await post_json( | |
| f"{Workers.WORKER1_URL}/api/profile/remove", | |
| _h(), | |
| {"tg_id": str(tg_id), "profile_id": str(profile_id)}, | |
| ) | |
| return _unwrap(r) |