fix: capture raw PHP response on JSON error in sync-diagnosticos
This commit is contained in:
@@ -83,13 +83,24 @@ async def erp_sync_diagnosticos(user: dict = Depends(get_current_user)):
|
|||||||
lote = diagnosticos[i:i + batch_size]
|
lote = diagnosticos[i:i + batch_size]
|
||||||
try:
|
try:
|
||||||
resp = await client.post(url, json={"rows": lote}, headers=headers)
|
resp = await client.post(url, json={"rows": lote}, headers=headers)
|
||||||
|
try:
|
||||||
data = resp.json()
|
data = resp.json()
|
||||||
|
except Exception:
|
||||||
|
raw = resp.text[:400].strip()
|
||||||
|
errores.append(f"Lote {i}-{i+len(lote)} HTTP {resp.status_code}: {raw!r}")
|
||||||
|
if i == 0:
|
||||||
|
break # Si el primer lote ya falla, no tiene sentido continuar
|
||||||
|
continue
|
||||||
if data.get("ok"):
|
if data.get("ok"):
|
||||||
insertados += data.get("insertados", len(lote))
|
insertados += data.get("insertados", len(lote))
|
||||||
else:
|
else:
|
||||||
errores.append(f"Lote {i}-{i+len(lote)}: {data.get('error', '?')}")
|
errores.append(f"Lote {i}-{i+len(lote)}: {data.get('error', '?')}")
|
||||||
|
if i == 0:
|
||||||
|
break
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
errores.append(f"Lote {i}-{i+len(lote)}: {ex}")
|
errores.append(f"Lote {i}-{i+len(lote)}: {ex}")
|
||||||
|
if i == 0:
|
||||||
|
break
|
||||||
|
|
||||||
return JSONResponse({
|
return JSONResponse({
|
||||||
"ok": len(errores) == 0,
|
"ok": len(errores) == 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user