LibreChat/models/Message.js

75 lines
1.5 KiB
JavaScript
Raw Normal View History

const mongoose = require('mongoose');
2023-02-04 20:08:46 -05:00
const messageSchema = mongoose.Schema({
id: {
type: String,
unique: true,
required: true
},
conversationId: {
type: String,
required: true
},
2023-02-19 21:06:21 -05:00
conversationSignature: {
type: String,
// required: true
},
clientId: {
type: String,
},
invocationId: {
type: Number,
},
parentMessageId: {
type: String,
2023-02-19 21:06:21 -05:00
// required: true
},
sender: {
type: String,
required: true
},
text: {
type: String,
required: true
},
created: {
type: Date,
default: Date.now
}
});
const Message = mongoose.models.Message || mongoose.model('Message', messageSchema);
module.exports = {
2023-02-06 14:58:43 -05:00
saveMessage: async ({ id, conversationId, parentMessageId, sender, text }) => {
try {
await Message.create({
id,
conversationId,
parentMessageId,
sender,
text
});
return { id, conversationId, parentMessageId, sender, text };
} catch (error) {
console.error(error);
return { message: 'Error saving message' };
}
2023-02-06 14:05:02 -05:00
},
getMessages: async (filter) => {
try {
return await Message.find(filter).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' };
}
}
}