Skip to content

fix(tools): filtros que apuntan a columnas inexistentes y tool duplicada#6

Open
Asermar wants to merge 1 commit into
FacturaScripts:mainfrom
Asermar:fix/tool-filters-wrong-columns
Open

fix(tools): filtros que apuntan a columnas inexistentes y tool duplicada#6
Asermar wants to merge 1 commit into
FacturaScripts:mainfrom
Asermar:fix/tool-filters-wrong-columns

Conversation

@Asermar

@Asermar Asermar commented Jul 25, 2026

Copy link
Copy Markdown

Problema

Tres defectos detectados al inventariar las tools get_*. Los dos primeros hacen que el usuario crea que está filtrando y reciba todo, sin ningún aviso.

Causa y solución

1. get_logmessages filtra por una columna que no existe. Expone el parámetro fecha, pero el modelo log_message no tiene esa columna: la suya es time (timestamp). Como APIModel::getWhereValues descarta los campos que no existen en el modelo, el filtro es un no-op silencioso. → Renombrado a time.

2. get_emailsentes tiene tres filtros igual de rotos. Expone destinatario, asunto y fecha; las columnas reales de email_sent son addressee, subject y date. → Renombrados los tres.

3. get_cuentabancoproveedores está declarada dos veces. Una en purchasingTools y otra en purchasingWriteTools, con dos case en el mismo switch. Se publicaba el esquema de la segunda (se registra después, y el Map es last-write-wins) pero se ejecutaba el primer case; el segundo era inalcanzable. → Se deja una sola definición, en purchasingTools por ser de lectura, conservando el esquema que se venía publicando (required: []) para no cambiar el contrato.

Alcance

Tres ficheros de módulos (system, communication, purchasing). Los nombres de parámetro pasan a coincidir con las columnas reales, que es lo que espera la API.

Es un cambio de nombre en la entrada de tres tools. Como esos filtros nunca llegaron a funcionar, no se rompe ningún uso que hoy dé resultado.

Verificación

Comprobado contra la metadata de los modelos que log_message tiene time (no fecha) y email_sent tiene addressee/subject/date (no destinatario/asunto/fecha). Tras el cambio queda una sola definición y un solo case de get_cuentabancoproveedores. Compila sin errores.

Tres defectos detectados al inventariar las tools get_*:

1. `get_logmessages` expone el filtro `fecha`, pero el modelo `log_message` no
   tiene esa columna: la suya es `time` (timestamp). Como `APIModel::getWhereValues`
   descarta los campos que no existen en el modelo, el filtro es un NO-OP
   silencioso: el usuario cree estar filtrando y recibe todo. Renombrado a `time`.

2. `get_emailsentes` tiene TRES filtros igual de rotos: `destinatario`, `asunto` y
   `fecha`; las columnas reales de `email_sent` son `addressee`, `subject` y `date`.
   Renombrados los tres.

3. `get_cuentabancoproveedores` está declarada dos veces (en `purchasingTools` y en
   `purchasingWriteTools`) y tiene dos `case` en el mismo switch. Se publicaba el
   esquema de la segunda (se registra después) pero se ejecutaba el primer case, y
   el segundo era inalcanzable. Se deja una sola definición, en `purchasingTools`
   por ser de lectura, conservando el esquema que se venía publicando.

Los nombres de parámetro pasan a coincidir con las columnas reales, que es lo que
espera la API.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant