Je signale un bug avec l’API du plugin Discourse Chat. Lors de la requête des messages de chat précédents, le paramètre page_size est ignoré et le point de terminaison renvoie toujours le nombre maximum de messages.
Étapes pour reproduire :
Effectuez un appel API au point de terminaison des messages de chat (par exemple, /chat/{channel_id}/messages.json).
Utilisez les paramètres suivants dans la requête :
target_message_id : [ID d’un message récent]
direction : past
page_size : 5 (ou tout nombre inférieur à 50)
Comportement attendu : L’API doit renvoyer un objet JSON contenant un maximum de 5 messages envoyés avant le target_message_id spécifié.
Comportement actuel : L’API renvoie 50 messages, ignorant le paramètre page_size=5. Il semble être codé en dur à la taille de page maximale dans ce scénario.
J’ai passé du temps à essayer de le reproduire, mais je n’ai pas réussi.
J’ai vérifié Chat::MessagesQuery, Chat::ListChannelMessages et l’action du contrôleur à travers nos specs et manuellement sur une instance locale également. Le paramètre page_size est pris en compte comme prévu, ainsi que le paramètre direction.
@Nima1 es-tu sûr d’utiliser le bon endpoint ? Il devrait contenir api, comme ceci : /chat/api/channels/3/messages?target_message_id=40&direction=past&page_size=5.
Une autre chose que je n’ai pas vérifiée est si le comportement est différent sur stable. Ton instance est-elle à jour avec la branche tests-passed ?
Mes excuses, j’ai oublié de mentionner un détail crucial : ce problème ne se produit que dans les canaux où le threading est activé. C’est probablement pourquoi vous n’avez pas pu le reproduire.
Le paramètre page_size est ignoré lorsque je récupère des messages d’un thread spécifique. Par exemple, lorsque j’utilise ce point de terminaison avec page_size=5 :
L’API renvoie les 50 messages par défaut au lieu des 5 demandés, même si de nombreux messages sont disponibles dans le thread. Il semble que le problème soit spécifique au point de terminaison de l’API des threads.