mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
Chat optimization (#15545)
* fix(content): textual tweaks and updates * fix(link): direct to FAQ instead of wiki * fix(faq): correct Markdown * Show orb of rebirth confirmation modal after use (window refresh) * Set and check rebirth confirmation modal from localstorage Set and check rebirth confirmation modal from localstorage after window reload * Don't show orb of rebirth confirmation modal until page reloads * message effective limit optimization * Keep max limit for web (400 recent messages) * Fix amount of messages initially being shown * PM_PER_PAGE set to 50 * Increases number of messages in inbox test * Increases number of messages for inbox pagination test * Set and check rebirth confirmation modal from localstorage Set and check rebirth confirmation modal from localstorage after window reload * Don't show orb of rebirth confirmation modal until page reloads * message effective limit optimization * Keep max limit for web (400 recent messages) * Add UUID validation for 'before' query parameter * add party message stress test tool in admin panel * lint * add MAX_PM_COUNT of 400, admin tool for stress testing messages * comment * update stress test inbox message tool to use logged in user * comment --------- Co-authored-by: Kalista Payne <kalista@habitica.com>
This commit is contained in:
@@ -64,6 +64,8 @@ function textContainsBannedSlur (message) {
|
||||
*
|
||||
* @apiParam (Path) {String} groupId The group _id ('party' for the user party and
|
||||
* 'habitrpg' for tavern are accepted).
|
||||
* @apiParam (Query) {Number} [limit=50] The number of messages to fetch (max 400).
|
||||
* @apiParam (Query) {String} [before] Fetch messages older than this message ID.
|
||||
*
|
||||
* @apiSuccess {Array} data An array of <a href='https://github.com/HabitRPG/habitica/blob/develop/website/server/models/group.js#L51' target='_blank'>chat messages</a>
|
||||
*
|
||||
@@ -78,18 +80,21 @@ api.getChat = {
|
||||
const { user } = res.locals;
|
||||
|
||||
req.checkParams('groupId', apiError('groupIdRequired')).notEmpty();
|
||||
req.checkQuery('before').optional().isUUID();
|
||||
|
||||
const validationErrors = req.validationErrors();
|
||||
if (validationErrors) throw validationErrors;
|
||||
|
||||
const { groupId } = req.params;
|
||||
const limit = req.query.limit ? Math.min(parseInt(req.query.limit, 10), 400) : 50;
|
||||
const { before } = req.query;
|
||||
const group = await Group.getGroup({ user, groupId, fields: 'chat privacy' });
|
||||
if (!group) throw new NotFound(res.t('groupNotFound'));
|
||||
if (group.privacy === 'public') {
|
||||
throw new BadRequest(res.t('featureRetired'));
|
||||
}
|
||||
|
||||
const groupChat = await Group.toJSONCleanChat(group, user);
|
||||
const groupChat = await Group.toJSONCleanChat(group, user, { limit, before });
|
||||
res.respond(200, groupChat.chat);
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user