Fix: mapeo de campos reales del PJ y PDF desde notificaciones
El endpoint de notificaciones del PJ usa nombres distintos a los documentados: - fechaNotificacion (no fecha) - descripcionDespacho (no juzgado) - descripcionCircunscripcion (no circunscripcion) - codActuacionCaso — campo nuevo, necesario para descargar PDF El botón PDF usaba codNotificacionOrigen como ID de actuación; corregido a codActuacionCaso. Manejo explícito de 403 en listar_notificaciones como CSJAuthError. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -70,6 +70,7 @@ class NotificacionPendiente:
|
||||
|
||||
__slots__ = (
|
||||
"cod_notificacion_origen",
|
||||
"cod_actuacion_caso",
|
||||
"nro_expediente_numero",
|
||||
"nro_expediente_anio",
|
||||
"caratula",
|
||||
@@ -84,14 +85,20 @@ class NotificacionPendiente:
|
||||
|
||||
def __init__(self, data: dict[str, Any]) -> None:
|
||||
self.cod_notificacion_origen: int = data["codNotificacionOrigen"]
|
||||
# El endpoint de notificaciones usa codActuacionCaso — necesario para descargar PDF
|
||||
self.cod_actuacion_caso: int | None = data.get("codActuacionCaso")
|
||||
# Campos documentados como nroExpedienteNumero/Anio no existen en el endpoint real
|
||||
self.nro_expediente_numero: int | None = data.get("nroExpedienteNumero")
|
||||
self.nro_expediente_anio: int | None = data.get("nroExpedienteAnio")
|
||||
self.caratula: str | None = data.get("caratula")
|
||||
self.descripcion_actuacion: str | None = data.get("descripcionActuacion")
|
||||
self.descripcion_tipo_actuacion: str | None = data.get("descripcionTipoActuacion")
|
||||
self.fecha: str | None = data.get("fecha")
|
||||
self.juzgado: str | None = data.get("juzgado")
|
||||
self.circunscripcion: str | None = data.get("circunscripcion")
|
||||
# fecha: el campo real es fechaNotificacion, no fecha
|
||||
self.fecha: str | None = data.get("fechaNotificacion") or data.get("fecha")
|
||||
# juzgado: el campo real es descripcionDespacho
|
||||
self.juzgado: str | None = data.get("descripcionDespacho") or data.get("juzgado")
|
||||
# circunscripcion: el campo real es descripcionCircunscripcion
|
||||
self.circunscripcion: str | None = data.get("descripcionCircunscripcion") or data.get("circunscripcion")
|
||||
self.cod_caso_judicial: int | None = data.get("codCasoJudicial")
|
||||
self.origen: int | None = data.get("origen")
|
||||
|
||||
@@ -471,6 +478,12 @@ class CSJClient:
|
||||
headers=session.auth_headers(),
|
||||
)
|
||||
|
||||
if r.status_code == 403:
|
||||
raise CSJAuthError(
|
||||
"Acceso denegado al listado de notificaciones (403). "
|
||||
"La cuenta puede no tener el rol de abogado habilitado en el PJ."
|
||||
)
|
||||
|
||||
r.raise_for_status()
|
||||
|
||||
data = r.json()
|
||||
|
||||
Reference in New Issue
Block a user