mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
* shared model for chat and inbox * disable inbox schema * inbox: use separate model * remove old code that used group.chat * add back chat field (not used) and remove old tests * remove inbox exclusions when loading user * add GET /api/v3/inbox/messages * add comment * implement DELETE /inbox/messages/:messageid in v4 * implement GET /inbox/messages in v4 and update tests * implement DELETE /api/v4/inbox/clear * fix url * fix doc * update /export/inbox.html * update other data exports * add back messages in user schema * add user.toJSONWithInbox * add compativility until migration is done * more compatibility * fix tojson called twice * add compatibility methods * fix common tests * fix v4 integration tests * v3 get user -> with inbox * start to fix tests * fix v3 integration tests * wip * wip, client use new route * update tests for members/send-private-message * tests for get user in v4 * add tests for DELETE /inbox/messages/:messageId * add tests for DELETE /inbox/clear in v4 * update docs * fix tests * initial migration * fix migration * fix migration * migration fixes * migrate api.enterCouponCode * migrate api.castSpell * migrate reset, reroll, rebirth * add routes to v4 version * fix tests * fixes * api.updateUser * remove .only * get user -> userLib * refactor inbox.vue to work with new data model * fix return message when messaging yourself * wip fix bug with new conversation * wip * fix remaining ui issues * move api.registerLocal, fixes * keep only v3 version of GET /inbox/messages
25 lines
894 B
JavaScript
25 lines
894 B
JavaScript
import { chatModel as Chat } from '../../models/message';
|
|
import { MAX_CHAT_COUNT, MAX_SUBBED_GROUP_CHAT_COUNT } from '../../models/group';
|
|
|
|
// @TODO: Don't use this method when the group can be saved.
|
|
export async function getGroupChat (group) {
|
|
const maxChatCount = group.isSubscribed() ? MAX_SUBBED_GROUP_CHAT_COUNT : MAX_CHAT_COUNT;
|
|
|
|
const groupChat = await Chat.find({groupId: group._id})
|
|
.limit(maxChatCount)
|
|
.sort('-timestamp')
|
|
.exec();
|
|
|
|
// @TODO: Concat old chat to keep continuity of chat stored on group object
|
|
const currentGroupChat = group.chat || [];
|
|
const concatedGroupChat = groupChat.concat(currentGroupChat);
|
|
|
|
group.chat = concatedGroupChat.reduce((previous, current) => {
|
|
const foundMessage = previous.find(message => {
|
|
return message.id === current.id;
|
|
});
|
|
if (!foundMessage) previous.push(current);
|
|
return previous;
|
|
}, []);
|
|
}
|