Chat API: הפרמטר page_size מתעלם כאשר direction=past

אני מדווח על באג ב-API של תוסף Discourse Chat. בעת שאילתה לגבי הודעות צ’אט קודמות, הפרמטר page_size מתעלם, והקצה תמיד מחזיר את המספר המרבי של הודעות.

שלבים לשחזור:

  1. בצע קריאת API לקצה הודעות הצ’אט (לדוגמה, /chat/{channel_id}/messages.json).

  2. השתמש בפרמטרים הבאים בבקשה:

    • target_message_id: [מזהה של הודעה אחרונה]

    • direction: past

    • page_size: 5 (או כל מספר קטן מ-50)

התנהגות צפויה: ה-API אמור להחזיר אובייקט JSON המכיל לכל היותר 5 הודעות שנשלחו לפני target_message_id שצוין.

התנהגות בפועל: ה-API מחזיר 50 הודעות, תוך התעלמות מהפרמטר page_size=5. נראה שהוא מקודד קשיח לגודל הדף המרבי בתרחיש זה.

תודה על הבדיקה!

2 לייקים

Reading through the implementation this appears somewhat deliberate:

Perhaps @loic has some thoughts here.

2 לייקים

ניסיתי לשחזר את זה במשך זמן מה, אך לא הצלחתי לעשות זאת.

בדקתי את Chat::MessagesQuery, Chat::ListChannelMessages ואת פעולת הבקר דרך המפרטים שלנו וגם באופן ידני על מופע מקומי. הפרמטר page_size נלקח בחשבון כמצופה, כמו גם הפרמטר direction.

@Nima1 האם אתה בטוח שאתה משתמש בנקודת הקצה הנכונה? היא צריכה להכיל api בתוכה, כך: /chat/api/channels/3/messages?target_message_id=40&direction=past&page_size=5.

דבר נוסף שלא בדקתי הוא אם ההתנהגות שונה ב-stable. האם המופע שלך מעודכן עם הענף tests-passed?

2 לייקים

תודה על הבדיקה.

מתנצל, שכחתי לציין פרט חשוב: הבעיה הזו מתרחשת רק בערוצים שבהם השרשורים מופעלים. זו כנראה הסיבה שלא הצלחת לשחזר אותה.

הפרמטר page_size מתעלם כאשר אני מאחזר הודעות משרשור ספציפי. לדוגמה, כאשר אני משתמש בנקודת הקצה הזו עם page_size=5:

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

ה-API מחזיר את 50 ההודעות ברירת המחדל במקום 5 המבוקשות, למרות שיש שפע של הודעות זמינות בשרשור. נראה שהבעיה ספציפית לנקודת הקצה של ה-API של השרשורים.

2 לייקים

Found the bug! I was already refactoring that service a bit, so I included the fix in it:

4 לייקים

נושא זה נסגר אוטומטית 3 ימים לאחר התגובה האחרונה. לא ניתן להוסיף תגובות חדשות.