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:
Realiza una llamada a la API al endpoint de mensajes de chat (por ejemplo, /chat/{channel_id}/messages.json).
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.
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?
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:
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.