LibreChat/api/models/Message.js

94 lines
2.3 KiB
JavaScript
Raw Normal View History

const Message = require('./schema/messageSchema');
module.exports = {
2023-03-16 16:22:08 -04:00
Message,
2023-04-04 01:10:50 +08:00
saveMessage: async ({
messageId,
newMessageId,
conversationId,
parentMessageId,
sender,
text,
isCreatedByUser = false,
error
}) => {
try {
2023-04-04 01:10:50 +08:00
await Message.findOneAndUpdate(
{ messageId },
{
messageId: newMessageId || messageId,
conversationId,
parentMessageId,
sender,
text,
isCreatedByUser,
error
},
{ upsert: true, new: true }
);
return { messageId, conversationId, parentMessageId, sender, text, isCreatedByUser };
2023-03-20 17:02:37 -04:00
} catch (error) {
console.error(error);
return { message: 'Error saving message' };
}
},
2023-04-04 01:10:50 +08:00
saveBingMessage: async ({
messageId,
newMessageId,
conversationId,
parentMessageId,
sender,
text,
isCreatedByUser = false,
error
}) => {
2023-03-20 17:02:37 -04:00
try {
2023-04-04 01:10:50 +08:00
await Message.findOneAndUpdate(
{ messageId },
{
messageId: newMessageId || messageId,
conversationId,
parentMessageId,
sender,
text,
isCreatedByUser,
error
},
{ upsert: true, new: true }
);
2023-03-20 17:02:37 -04:00
return { messageId, conversationId, parentMessageId, sender, text, isCreatedByUser };
} catch (error) {
console.error(error);
return { message: 'Error saving message' };
}
2023-02-06 14:05:02 -05:00
},
deleteMessagesSince: async ({ messageId, conversationId }) => {
try {
2023-04-04 01:10:50 +08:00
const message = await Message.findOne({ messageId }).exec();
2023-04-04 01:10:50 +08:00
if (message)
return await Message.find({ conversationId })
.deleteMany({ createdAt: { $gt: message.createdAt } })
.exec();
} catch (error) {
console.error(error);
return { message: 'Error deleting messages' };
}
},
2023-04-04 01:10:50 +08:00
getMessages: async filter => {
try {
2023-04-04 01:10:50 +08:00
return await Message.find(filter).sort({ createdAt: 1 }).exec();
} catch (error) {
console.error(error);
return { message: 'Error getting messages' };
}
},
2023-04-04 01:10:50 +08:00
deleteMessages: async filter => {
try {
2023-04-04 01:10:50 +08:00
return await Message.deleteMany(filter).exec();
} catch (error) {
console.error(error);
return { message: 'Error deleting messages' };
}
}
2023-04-04 01:10:50 +08:00
};