mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-22 08:12:00 +02:00
63 lines
1.6 KiB
JavaScript
63 lines
1.6 KiB
JavaScript
const Message = require('./schema/messageSchema');
|
|
module.exports = {
|
|
Message,
|
|
saveMessage: async ({
|
|
messageId,
|
|
newMessageId,
|
|
conversationId,
|
|
parentMessageId,
|
|
sender,
|
|
text,
|
|
isCreatedByUser = false,
|
|
error
|
|
}) => {
|
|
try {
|
|
await Message.findOneAndUpdate(
|
|
{ messageId },
|
|
{
|
|
messageId: newMessageId || messageId,
|
|
conversationId,
|
|
parentMessageId,
|
|
sender,
|
|
text,
|
|
isCreatedByUser,
|
|
error
|
|
},
|
|
{ upsert: true, new: true }
|
|
);
|
|
return { messageId, conversationId, parentMessageId, sender, text, isCreatedByUser };
|
|
} catch (error) {
|
|
console.error(error);
|
|
return { message: 'Error saving message' };
|
|
}
|
|
},
|
|
deleteMessagesSince: async ({ messageId, conversationId }) => {
|
|
try {
|
|
const message = await Message.findOne({ messageId }).exec();
|
|
|
|
if (message)
|
|
return await Message.find({ conversationId })
|
|
.deleteMany({ createdAt: { $gt: message.createdAt } })
|
|
.exec();
|
|
} catch (error) {
|
|
console.error(error);
|
|
return { message: 'Error deleting messages' };
|
|
}
|
|
},
|
|
getMessages: async filter => {
|
|
try {
|
|
return await Message.find(filter).sort({ createdAt: 1 }).exec();
|
|
} catch (error) {
|
|
console.error(error);
|
|
return { message: 'Error getting messages' };
|
|
}
|
|
},
|
|
deleteMessages: async filter => {
|
|
try {
|
|
return await Message.deleteMany(filter).exec();
|
|
} catch (error) {
|
|
console.error(error);
|
|
return { message: 'Error deleting messages' };
|
|
}
|
|
}
|
|
};
|