diff --git a/controllers/meetingController.js b/controllers/meetingController.js index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4860322910afe398d397dafe2a38044979d42930 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