csa-backend-test/app/routes/messages.route.js

40 lines
1.4 KiB
JavaScript

const express = require('express');
const router = express.Router();
const messagesController = require("../controllers/messages.controller.js");
const multer = require('multer');
const upload = multer({
storage: multer.memoryStorage(),
limits: {
fileSize: 10 * 1024 * 1024,
},
fileFilter: (req, file, cb) => {
const allowedTypes = [
'image/jpeg', 'image/png', 'image/gif', 'image/webp',
'application/pdf', 'text/plain', 'application/msword',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'audio/mpeg', 'audio/wav', 'video/mp4', 'video/quicktime'
];
if (allowedTypes.includes(file.mimetype)) {
cb(null, true);
} else {
cb(new Error('Invalid file type'), false);
}
}
});
router.get('/messages/conversations', messagesController.getConversations);
router.post('/messages/conversations', messagesController.createConversation);
router.get('/messages/:conversationId', messagesController.getMessages);
router.post('/messages', upload.array('attachments', 5), messagesController.sendMessage);
router.delete('/messages/attachments/:attachmentId', messagesController.deleteAttachment);
router.put('/messages/:conversationId/read', messagesController.markMessagesAsRead);
router.get('/messages/stats/:userId', messagesController.getStats);
module.exports = router;