mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
* feat: add global teardown to remove test data and add registration/log-out to auth flow * refactor(models/Conversation): index user field and add JSDoc to deleteConvos * refactor: add user index to message schema and ensure user is saved to each Message * refactor: add user to each saveMessage call * fix: handle case where title is null in zod schema * feat(e2e): ensure messages are deleted on cleanUp * fix: set last convo for all endpoints on conversation update * fix: enable registration for CI env
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const {
|
|
getMessages,
|
|
updateMessage,
|
|
saveConvo,
|
|
saveMessage,
|
|
deleteMessages,
|
|
} = require('../../models');
|
|
const { requireJwtAuth, validateMessageReq } = require('../middleware/');
|
|
|
|
router.get('/:conversationId', requireJwtAuth, validateMessageReq, async (req, res) => {
|
|
const { conversationId } = req.params;
|
|
res.status(200).send(await getMessages({ conversationId }));
|
|
});
|
|
|
|
// CREATE
|
|
router.post('/:conversationId', requireJwtAuth, validateMessageReq, async (req, res) => {
|
|
const message = req.body;
|
|
const savedMessage = await saveMessage({ ...message, user: req.user.id });
|
|
await saveConvo(req.user.id, savedMessage);
|
|
res.status(201).send(savedMessage);
|
|
});
|
|
|
|
// READ
|
|
router.get('/:conversationId/:messageId', requireJwtAuth, validateMessageReq, async (req, res) => {
|
|
const { conversationId, messageId } = req.params;
|
|
res.status(200).send(await getMessages({ conversationId, messageId }));
|
|
});
|
|
|
|
// UPDATE
|
|
router.put('/:conversationId/:messageId', requireJwtAuth, validateMessageReq, async (req, res) => {
|
|
const { messageId } = req.params;
|
|
const { text } = req.body;
|
|
res.status(201).send(await updateMessage({ messageId, text }));
|
|
});
|
|
|
|
// DELETE
|
|
router.delete(
|
|
'/:conversationId/:messageId',
|
|
requireJwtAuth,
|
|
validateMessageReq,
|
|
async (req, res) => {
|
|
const { messageId } = req.params;
|
|
await deleteMessages({ messageId });
|
|
res.status(204).send();
|
|
},
|
|
);
|
|
|
|
module.exports = router;
|