mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
* Began moving group chat to separate model * Fixed lint issue * Updated delete chat with new model * Updated flag chat to support model * Updated like chat to use model * Fixed duplicate code and chat messages * Added note about concat chat * Updated clear flags to user new model * Updated more chat checks when loading get group * Fixed spell test and back save * Moved get chat to json method * Updated flagging with new chat model * Added missing await * Fixed chat user styles. Fixed spell group test * Added new model to quest chat and group plan chat * Removed extra timestamps. Added limit check for group plans * Updated tests * Synced id fields * Fixed id creation * Add meta and fixed tests * Fixed group quest accept test * Updated puppeteer * Added migration * Export vars * Updated comments
25 lines
887 B
JavaScript
25 lines
887 B
JavaScript
import { model as Chat } from '../../models/chat';
|
|
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;
|
|
}, []);
|
|
}
|