fix: Unwrap CEIDG /firma/{id} response structure {"firma": [{...}]}
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
The detail endpoint wraps firm data in a lista under "firma" key. Without unwrapping, the list of dicts was assigned to legal_name (String), causing psycopg2 ProgrammingError: can't adapt type 'dict'. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
a67d069f81
commit
e60dd010c3
@ -30,12 +30,23 @@ CEIDG_TIMEOUT = 15 # seconds
|
||||
|
||||
|
||||
def _fetch_firma_detail(firma_id: str, headers: dict) -> Optional[Dict[str, Any]]:
|
||||
"""Phase 2: Fetch full company details from /firma/{id} endpoint."""
|
||||
"""Phase 2: Fetch full company details from /firma/{id} endpoint.
|
||||
|
||||
The API returns {"firma": [{...}]} — unwrap to get the actual firm dict.
|
||||
"""
|
||||
url = f"{CEIDG_API_BASE}/firma/{firma_id}"
|
||||
try:
|
||||
response = requests.get(url, headers=headers, timeout=CEIDG_TIMEOUT)
|
||||
if response.status_code == 200:
|
||||
return response.json()
|
||||
data = response.json()
|
||||
# Unwrap: /firma/{id} returns {"firma": [{...company data...}]}
|
||||
if isinstance(data, dict) and 'firma' in data:
|
||||
firmy = data['firma']
|
||||
if isinstance(firmy, list) and firmy:
|
||||
return firmy[0]
|
||||
if isinstance(firmy, dict):
|
||||
return firmy
|
||||
return data
|
||||
logger.warning(f"CEIDG detail endpoint returned {response.status_code} for id={firma_id}")
|
||||
except Exception as e:
|
||||
logger.warning(f"CEIDG detail fetch failed for id={firma_id}: {e}")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user