40 lines
1.4 KiB
JavaScript
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; |