Chat API: el parámetro page_size se ignora cuando direction=past

Estoy informando de un error con la API del plugin Discourse Chat. Al consultar mensajes de chat anteriores, el parámetro page_size se ignora y el endpoint siempre devuelve el número máximo de mensajes.

Pasos para reproducir:

  1. Realiza una llamada a la API al endpoint de mensajes de chat (por ejemplo, /chat/{channel_id}/messages.json).

  2. Utiliza los siguientes parámetros en la solicitud:

    • target_message_id: [ID de un mensaje reciente]

    • direction: past

    • page_size: 5 (o cualquier número menor que 50)

Comportamiento esperado: La API debería devolver un objeto JSON que contenga un máximo de 5 mensajes enviados antes del target_message_id especificado.

Comportamiento real: La API devuelve 50 mensajes, ignorando el parámetro page_size=5. Parece estar codificado de forma rígida al tamaño máximo de página en este escenario.

¡Gracias por investigar esto!

2 Me gusta

Al leer la implementación, esto parece algo deliberado:

Quizás @loic tenga algunas ideas al respecto.

2 Me gusta

Pasé un tiempo intentando replicarlo, pero no pude hacerlo.

Revisé Chat::MessagesQuery, Chat::ListChannelMessages y la acción del controlador a través de nuestras especificaciones y manualmente en una instancia local también. El parámetro page_size se tiene en cuenta como se esperaba, así como el parámetro direction.

@Nima1 ¿estás seguro de que usas el endpoint correcto? Debería tener api en él, así: /chat/api/channels/3/messages?target_message_id=40&direction=past&page_size=5.

Otra cosa que no he comprobado es si se comporta de manera diferente en stable. ¿Está tu instancia actualizada con la rama tests-passed?

2 Me gusta

Gracias por investigar.

Mis disculpas, olvidé mencionar un detalle crucial: este problema solo ocurre en canales con hilos habilitados. Esa es probablemente la razón por la que no pudiste replicarlo.

El parámetro page_size se ignora cuando obtengo mensajes de un hilo específico. Por ejemplo, cuando uso este endpoint con page_size=5:

/chat/api/channels/64/threads/1526/messages?target_message_id=19205&page_size=5

La API devuelve los 50 mensajes predeterminados en lugar de los 5 solicitados, a pesar de que hay muchos mensajes disponibles en el hilo. Parece que el problema es específico del endpoint de la API de hilos.

2 Me gusta

¡Encontré el error! Ya estaba refactorizando ese servicio un poco, así que incluí la corrección en él:

4 Me gusta

Este tema se cerró automáticamente 3 días después de la última respuesta. Ya no se permiten nuevas respuestas.