From 5b1f63035b82f9ec0d8ff93fdc787aa561ad0743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=8C=80=ED=9D=AC?= <joedaehui@ajou.ac.kr> Date: Sat, 7 Dec 2024 13:43:32 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=82=B4=EA=B0=80=20=EC=B0=B8=EC=97=AC?= =?UTF-8?q?=ED=95=9C=20=EB=AF=B8=ED=8C=85=20=EC=A1=B0=ED=9A=8C=20=EC=BB=A8?= =?UTF-8?q?=ED=8A=B8=EB=A1=A4=EB=9F=AC,=20=EB=9D=BC=EC=9A=B0=ED=8A=B8=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(#23)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/meetingController.js | 35 ++++++++++++++++++++++++++++++-- routes/meetingRoute.js | 7 +++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/controllers/meetingController.js b/controllers/meetingController.js index 9642db6..78f4464 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 af2ac33..9d2e26f 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 -- GitLab