From 84096ad2a220a1f17c1d2d3419693bcb932f902e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=8B=AC=EC=9E=AC=EC=97=BD?= <jysim0326@ajou.ac.kr>
Date: Tue, 19 Nov 2024 18:15:12 +0900
Subject: [PATCH] =?UTF-8?q?feat:=20=EB=B2=88=EA=B0=9C=EB=AA=A8=EC=9E=84=20?=
 =?UTF-8?q?=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC=20(#9)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 controllers/meetingController.js | 68 ++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/controllers/meetingController.js b/controllers/meetingController.js
index e69de29..4860322 100644
--- a/controllers/meetingController.js
+++ b/controllers/meetingController.js
@@ -0,0 +1,68 @@
+const MeetingService = require('../services/meetingService');
+
+class MeetingController {
+  async createMeeting(req, res) {
+    try {
+      const result = await MeetingService.createMeeting(req.body);
+      res.status(201).json(result);
+    } catch (err) {
+      console.error('번개 모임 생성 오류:', err);
+      res.status(500).json({ error: err.message || '번개 모임 생성 실패' });
+    }
+  }
+
+  async getMeetings(req, res) {
+    const { userId } = req.query;
+
+    if (!userId) {
+      return res.status(400).json({ error: '사용자 ID가 필요합니다.' });
+    }
+
+    try {
+      const meetings = await MeetingService.getMeetings(userId);
+      res.status(200).json(meetings);
+    } catch (err) {
+      console.error('모임 목록 조회 오류:', err);
+      res.status(500).json({ error: err.message || '모임 목록 조회 실패' });
+    }
+  }
+
+  async closeMeeting(req, res) {
+    const { meetingId } = req.params;
+
+    try {
+      const meeting = await MeetingService.closeMeeting(meetingId);
+      res.status(200).json({ message: '모임이 마감되었습니다.', meeting });
+    } catch (err) {
+      console.error('모임 마감 오류:', err);
+      res.status(500).json({ error: err.message || '모임 마감 실패' });
+    }
+  }
+
+  async joinMeeting(req, res) {
+    const { meetingId } = req.params;
+    const { user_id } = req.body;
+
+    try {
+      await MeetingService.joinMeeting(meetingId, user_id);
+      res.status(200).json({ message: '모임 및 채팅방 참가 완료' });
+    } catch (err) {
+      console.error('모임 참가 오류:', err);
+      res.status(500).json({ error: err.message || '모임 참가 실패' });
+    }
+  }
+
+  async getMeetingDetail(req, res) {
+    const { meetingId } = req.params;
+
+    try {
+      const meetingDetail = await MeetingService.getMeetingDetail(meetingId);
+      res.status(200).json(meetingDetail);
+    } catch (err) {
+      console.error('모임 상세 조회 오류:', err);
+      res.status(500).json({ error: err.message || '모임 상세 조회 실패' });
+    }
+  }
+}
+
+module.exports = new MeetingController();
\ No newline at end of file
-- 
GitLab