e2ee
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
const express = require('express')
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
const crypto = require('crypto')
|
||||
const multer = require('multer')
|
||||
const {
|
||||
listRooms,
|
||||
createRoom,
|
||||
@@ -15,6 +19,23 @@ const requireSubUserPermission = require('../../../middlewares/requireSubUserPer
|
||||
|
||||
const router = express.Router()
|
||||
|
||||
// همون دلیلِ /api/v1/chat/file توی index.js: این روت قبلاً بهجای multer به
|
||||
// express-form-data (که بعداً global حذف شد) تکیه داشت، پس req.files همیشه
|
||||
// undefined بود و هر ارسالِ فایل/عکس/ویس/ویدیو توی چتِ روم هم شکست میخورد
|
||||
const roomMessageUploadDir = path.join(__dirname, '../../../storage/chat-rooms/messages')
|
||||
if (!fs.existsSync(roomMessageUploadDir)) {
|
||||
fs.mkdirSync(roomMessageUploadDir, { recursive: true })
|
||||
}
|
||||
const roomMessageUpload = multer({
|
||||
storage: multer.diskStorage({
|
||||
destination: (req, file, cb) => cb(null, roomMessageUploadDir),
|
||||
filename: (req, file, cb) => {
|
||||
cb(null, `${Date.now()}-${crypto.randomUUID()}${path.extname(file.originalname || '')}`)
|
||||
}
|
||||
}),
|
||||
limits: { fileSize: 200 * 1024 * 1024 }
|
||||
}).single('file')
|
||||
|
||||
router.get('/', listRooms)
|
||||
router.post('/', createRoom)
|
||||
router.get('/:roomId', getRoomDetail)
|
||||
@@ -23,7 +44,7 @@ router.post('/:roomId/members', addRoomMembers)
|
||||
router.get('/:roomId/e2ee-keys', getRoomE2eeKeys)
|
||||
router.put('/:roomId/e2ee-keys', putRoomE2eeKeys)
|
||||
router.get('/:roomId/messages', getRoomMessages)
|
||||
router.post('/:roomId/messages', requireSubUserPermission('reply_dm'), sendRoomMessage)
|
||||
router.post('/:roomId/messages', roomMessageUpload, requireSubUserPermission('reply_dm'), sendRoomMessage)
|
||||
router.post('/:roomId/messages/reaction', reactToRoomMessage)
|
||||
|
||||
module.exports = router
|
||||
|
||||
Reference in New Issue
Block a user