feat(5.20): US-004/005/006/009 ingestie+API+worker+import pe mediu RAR
US-004: rezolva_rar_env (cerere>default cont>ancora globala) + MediuIndisponibil + cod RAR_MEDIU_INDISPONIBIL. US-005: camp rar_env pe POST /v1/prezentari + /valideaza (Literal), echo in SubmissionResult/ValidareResult/GET, build_key + INSERT env-aware. US-006: AccountSessions re-cheiat (account_id, rar_env); RarClient base_url per env; creds din slotul env; purge + recover_orphans scoped pe env (E1/1a, 1b/E6); claim_one propaga rar_env (1c/E8); keepalive pe ancora globala (M2). US-009: selector mediu la import (>=2 medii), eticheta la 1, banner la 0; commit seteaza rar_env pe submissions. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -44,6 +44,11 @@ class RarAuthError(RarError):
|
||||
"""Login esuat (401 / credentiale invalide). NU se face retry."""
|
||||
|
||||
|
||||
def base_url_pentru_env(settings: "Settings", env: str) -> str:
|
||||
"""URL de baza al mediului RAR: 'prod' -> rar_base_url_prod, altfel rar_base_url_test."""
|
||||
return settings.rar_base_url_prod if env == "prod" else settings.rar_base_url_test
|
||||
|
||||
|
||||
class RarClient:
|
||||
"""Client sincron httpx. Folosit din worker (proces separat).
|
||||
|
||||
@@ -53,10 +58,10 @@ class RarClient:
|
||||
data = rar.post_prezentare(token, payload)
|
||||
"""
|
||||
|
||||
def __init__(self, settings: Settings | None = None):
|
||||
def __init__(self, settings: Settings | None = None, *, base_url: str | None = None):
|
||||
self.settings = settings or get_settings()
|
||||
self._client = httpx.Client(
|
||||
base_url=self.settings.rar_base_url,
|
||||
base_url=base_url if base_url is not None else self.settings.rar_base_url,
|
||||
timeout=self.settings.http_timeout_s,
|
||||
headers={"User-Agent": self.settings.http_user_agent}, # fix WAF 403
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user