Nima1
(Nima)
1
Discourse Chat プラグインの API に関するバグを報告します。過去のチャットメッセージをクエリする際に、page_size パラメータが無視され、エンドポイントは常に最大数のメッセージを返します。
再現手順:
-
チャットメッセージエンドポイント(例: /chat/{channel_id}/messages.json)に API 呼び出しを行います。
-
リクエストで以下のパラメータを使用します。
期待される動作: API は、指定された target_message_id より前に送信された最大 5 件のメッセージを含む JSON オブジェクトを返すはずです。
実際の動作: API は page_size=5 パラメータを無視して 50 件のメッセージを返します。このシナリオでは、最大ページサイズにハードコードされているようです。
ご確認ありがとうございます!
「いいね!」 2
sam
(Sam Saffron)
2
実装を読み進めると、これはある程度意図的なように思われます。
おそらく @loic さん、何か考えはありますか。
「いいね!」 2
loic
(Loïc Guitaut)
3
複製しようとしましたが、できませんでした。
Chat::MessagesQuery、Chat::ListChannelMessages、およびコントローラーのアクションを、仕様とローカルインスタンスでの手動チェックの両方で確認しました。page_size パラメータは、direction パラメータと同様に、期待どおりに考慮されています。
@Nima1 正しいエンドポイントを使用していますか? /chat/api/channels/3/messages?target_message_id=40&direction=past&page_size=5 のように、api が含まれている必要があります。
また、stable で動作が異なるかどうかは確認していません。あなたのインスタンスは tests-passed ブランチで最新の状態ですか?
「いいね!」 2
Nima1
(Nima)
4
ご確認いただきありがとうございます。
申し訳ありません、重要な詳細を伝え忘れていました。この問題は、スレッドが有効になっているチャンネルでのみ発生します。そのため、再現できなかったのだと思われます。
特定の Сhannel からメッセージを取得する際、page_size パラメータは無視されます。例えば、このエンドポイントを page_size=5 で使用した場合:
/chat/api/channels/64/threads/1526/messages?target_message_id=19205&page_size=5
API は、スレッドに十分なメッセージが存在する場合でも、要求された 5 件ではなくデフォルトの 50 件を返します。問題はスレッド API エンドポイントに限定されているようです。
「いいね!」 2
loic
(Loïc Guitaut)
5
バグを見つけました!すでにそのサービスを少しリファクタリングしていたので、修正を含めました。
「いいね!」 4
j.jaffeux
(Joffrey Jaffeux)
クローズされました:
6
このトピックは、最後の返信から3日後に自動的に閉じられました。返信はもう許可されていません。