feat(api): rar_credentials optional pe POST /v1/prezentari
Cand `rar_credentials` lipseste din cerere, submission-ul intra fara creds efemere, iar worker-ul cade pe creds-urile RAR durabile ale contului (accounts.rar_creds_enc). Identificarea contului ramane pe cheia API. Trimiterea explicita a creds-urilor suprascrie creds-urile contului pe acea cerere (back-compat: fluxul vechi ROAAUTO merge identic). - models.py: rar_credentials: RarCredentials | None = None - router.py: cripteaza creds doar daca exista (altfel creds_enc=NULL) - worker NEATINS: avea deja fallback _creds_for(...) or _creds_from_account(...) Pagina /integrare aliniata: exemplele cod (7 limbaje) + export Postman nu mai includ rar_credentials in payload; nota noua explica modelul (creds pe cont, optional in payload). README rescris compact + reflecta optionalitatea. Test nou: enqueue fara creds -> submission fara creds efemere -> fallback pe contul cu creds salvate. Suita: 673 passed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -27,6 +27,10 @@ def _payload_prezentari_dict(account_id: int) -> dict:
|
||||
|
||||
Campurile cu default (odometru_initial, obs, b64_image, sistem_reparat) sunt
|
||||
omise pentru concizie — nu sunt obligatorii.
|
||||
|
||||
`rar_credentials` NU e inclus: cererea trimite doar cheia API + datele prezentarii,
|
||||
iar worker-ul foloseste credentialele RAR salvate pe cont (tab-ul Cont). Trimiterea
|
||||
lor in payload e optionala (suprascrie creds-urile contului pe acea cerere).
|
||||
"""
|
||||
# Construim un dict cu toate campurile obligatorii
|
||||
campuri = _campuri_obligatorii()
|
||||
@@ -48,13 +52,7 @@ def _payload_prezentari_dict(account_id: int) -> dict:
|
||||
# Fallback generic pentru campuri neasteptate adaugate ulterior
|
||||
prezentare[camp] = f"<{camp}>"
|
||||
|
||||
return {
|
||||
"rar_credentials": {
|
||||
"email": "utilizator@service.ro",
|
||||
"password": "parola_rar",
|
||||
},
|
||||
"prezentari": [prezentare],
|
||||
}
|
||||
return {"prezentari": [prezentare]}
|
||||
|
||||
|
||||
def _payload_json_str(account_id: int, indent: int = 2) -> str:
|
||||
|
||||
Reference in New Issue
Block a user