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__ = (
|
__slots__ = (
|
||||||
"cod_notificacion_origen",
|
"cod_notificacion_origen",
|
||||||
|
"cod_actuacion_caso",
|
||||||
"nro_expediente_numero",
|
"nro_expediente_numero",
|
||||||
"nro_expediente_anio",
|
"nro_expediente_anio",
|
||||||
"caratula",
|
"caratula",
|
||||||
@@ -84,14 +85,20 @@ class NotificacionPendiente:
|
|||||||
|
|
||||||
def __init__(self, data: dict[str, Any]) -> None:
|
def __init__(self, data: dict[str, Any]) -> None:
|
||||||
self.cod_notificacion_origen: int = data["codNotificacionOrigen"]
|
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_numero: int | None = data.get("nroExpedienteNumero")
|
||||||
self.nro_expediente_anio: int | None = data.get("nroExpedienteAnio")
|
self.nro_expediente_anio: int | None = data.get("nroExpedienteAnio")
|
||||||
self.caratula: str | None = data.get("caratula")
|
self.caratula: str | None = data.get("caratula")
|
||||||
self.descripcion_actuacion: str | None = data.get("descripcionActuacion")
|
self.descripcion_actuacion: str | None = data.get("descripcionActuacion")
|
||||||
self.descripcion_tipo_actuacion: str | None = data.get("descripcionTipoActuacion")
|
self.descripcion_tipo_actuacion: str | None = data.get("descripcionTipoActuacion")
|
||||||
self.fecha: str | None = data.get("fecha")
|
# fecha: el campo real es fechaNotificacion, no fecha
|
||||||
self.juzgado: str | None = data.get("juzgado")
|
self.fecha: str | None = data.get("fechaNotificacion") or data.get("fecha")
|
||||||
self.circunscripcion: str | None = data.get("circunscripcion")
|
# 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.cod_caso_judicial: int | None = data.get("codCasoJudicial")
|
||||||
self.origen: int | None = data.get("origen")
|
self.origen: int | None = data.get("origen")
|
||||||
|
|
||||||
@@ -471,6 +478,12 @@ class CSJClient:
|
|||||||
headers=session.auth_headers(),
|
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()
|
r.raise_for_status()
|
||||||
|
|
||||||
data = r.json()
|
data = r.json()
|
||||||
|
|||||||
@@ -735,8 +735,8 @@ class PedritoBot:
|
|||||||
|
|
||||||
cod_caso = notif.cod_caso_judicial
|
cod_caso = notif.cod_caso_judicial
|
||||||
origen = notif.origen
|
origen = notif.origen
|
||||||
cod_notif = notif.cod_notificacion_origen
|
cod_actuacion = notif.cod_actuacion_caso
|
||||||
pdf_cb = f"pdf:{cod_caso}:{origen}:{cod_notif}" if (cod_caso and origen is not None) else None
|
pdf_cb = f"pdf:{cod_caso}:{origen}:{cod_actuacion}" if (cod_caso and origen is not None and cod_actuacion) else None
|
||||||
|
|
||||||
botones = []
|
botones = []
|
||||||
if pdf_cb:
|
if pdf_cb:
|
||||||
|
|||||||
Reference in New Issue
Block a user