import * as meetingService from '../services/meeting.service.js'; /** * Get meetings by month * GET /api/meetings?year=2024&month=1 */ export const getMeetingsByMonth = async (req, res, next) => { try { const { year, month } = req.query; const currentDate = new Date(); const queryYear = year ? parseInt(year) : currentDate.getFullYear(); const queryMonth = month ? parseInt(month) : currentDate.getMonth() + 1; const meetings = await meetingService.getMeetingsByMonth(queryYear, queryMonth); res.status(200).json({ success: true, count: meetings.length, data: meetings, }); } catch (error) { next(error); } }; /** * Get meeting by ID * GET /api/meetings/:meetingId */ export const getMeetingById = async (req, res, next) => { try { const { meetingId } = req.params; const meeting = await meetingService.getMeetingById(meetingId); res.status(200).json({ success: true, data: meeting, }); } catch (error) { next(error); } }; /** * Create a new meeting (admin only) * POST /api/meetings */ export const createMeeting = async (req, res, next) => { try { const userId = req.userId; const data = req.body; const meeting = await meetingService.createMeeting(userId, data); res.status(201).json({ success: true, data: meeting, message: 'Meeting bol vytvorený', }); } catch (error) { next(error); } }; /** * Update a meeting (admin only) * PUT /api/meetings/:meetingId */ export const updateMeeting = async (req, res, next) => { try { const { meetingId } = req.params; const data = req.body; const meeting = await meetingService.updateMeeting(meetingId, data); res.status(200).json({ success: true, data: meeting, message: 'Meeting bol upravený', }); } catch (error) { next(error); } }; /** * Delete a meeting (admin only) * DELETE /api/meetings/:meetingId */ export const deleteMeeting = async (req, res, next) => { try { const { meetingId } = req.params; const result = await meetingService.deleteMeeting(meetingId); res.status(200).json({ success: true, message: result.message, }); } catch (error) { next(error); } };