diff --git a/controllers/meetingController.js b/controllers/meetingController.js index 9642db62358fe16d905a0013a74495fe320196f7..78f4464ff4d7bebb4c3a425ce3154bb4c1e5c042 100644 --- a/controllers/meetingController.js +++ b/controllers/meetingController.js @@ -117,6 +117,37 @@ class MeetingController { } } + /** + * 내가 참여한 모임 목록 조회 + * GET /api/meetings/my + */ + async getMyMeetings(req, res) { + try { + const userId = req.user.id; + const page = parseInt(req.query.page) || 0; + const size = parseInt(req.query.size) || 20; + + const meetings = await MeetingService.getMyMeetings(userId, { + limit: size, + offset: page * size + }); + + res.status(200).json({ + success: true, + data: { + content: meetings.content, + page: page, + size: size, + hasNext: meetings.hasNext + } + }); + } catch (err) { + console.error('내 모임 목록 조회 오류:', err); + res.status(500).json({ error: err.message || '내 모임 목록 조회 실패' }); + } + } + + /** * 번개 모임 탈퇴 * DELETE /api/meeting/:meetingId/leave @@ -124,10 +155,10 @@ class MeetingController { async leaveMeeting(req, res) { const { meetingId } = req.params; const userId = req.user.id; - + try { await MeetingService.leaveMeeting(meetingId, userId); - res.status(200).json({ message: '모임 탈퇴 성공' }); + res.status(200).json({ message: '모임 탈퇴 성공' }); } catch (err) { console.error('모임 탈퇴 오류:', err); res.status(500).json({ error: err.message || '모임 탈퇴 실패' }); diff --git a/routes/meetingRoute.js b/routes/meetingRoute.js index af2ac33f75bac50cae50f492fb5b75aa251eabb8..9d2e26f8bc0dcfa8fee321d29632b1a2b97e4c0c 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); @@ -25,4 +25,7 @@ router.get('/:meetingId', MeetingController.getMeetingDetail); // 번개 모임 탈퇴 router.delete('/:meetingId/leave', MeetingController.leaveMeeting); +// 내가 참여한 모임 목록 조회 +router.get('/my', MeetingController.getMyMeetings); + module.exports = router; \ No newline at end of file