40 lines
1000 B
JavaScript
40 lines
1000 B
JavaScript
import { GroupChatMsg } from '/imports/api/group-chat-msg';
|
|
import Logger from '/imports/startup/server/logger';
|
|
import flat from 'flat';
|
|
import { parseMessage } from './addGroupChatMsg';
|
|
|
|
export default async function addBulkGroupChatMsgs(msgs) {
|
|
if (!msgs.length) return;
|
|
|
|
const mappedMsgs = msgs
|
|
.map(({ chatId, meetingId, msg }) => {
|
|
const {
|
|
sender,
|
|
...restMsg
|
|
} = msg;
|
|
|
|
return {
|
|
_id: new Mongo.ObjectID()._str,
|
|
...restMsg,
|
|
meetingId,
|
|
chatId,
|
|
message: parseMessage(msg.message),
|
|
sender: sender.id,
|
|
senderName: sender.name,
|
|
senderRole: sender.role,
|
|
};
|
|
})
|
|
.map((el) => flat(el, { safe: true }));
|
|
|
|
try {
|
|
const { insertedCount } = await GroupChatMsg.rawCollection().insertMany(mappedMsgs);
|
|
msgs.length = 0;
|
|
|
|
if (insertedCount) {
|
|
Logger.info(`Inserted ${insertedCount} messages`);
|
|
}
|
|
} catch (err) {
|
|
Logger.error(`Error on bulk insert. ${err}`);
|
|
}
|
|
}
|