diff --git a/controllers/scheduleController.js b/controllers/scheduleController.js index 9233af6aebba049ef1f0a9c296d367de099ed9e5..1d3bb93fabce16ce54c6f76d044e8098cf930595 100644 --- a/controllers/scheduleController.js +++ b/controllers/scheduleController.js @@ -1,9 +1,10 @@ +const { success } = require('../passport/googleStrategy'); const ScheduleService = require('../services/scheduleService'); class scheduleController { /** * 스케줄 생성 - * POST /api/schedules + * POST /api/schedule * 해당 사용자 id는 auth 미들웨어에서 설정된 사용자 정보 이용 * req.user = User 모델의 인스턴스 */ @@ -36,4 +37,44 @@ class scheduleController { }); } } + + /** + * 스케줄 수정 + * PUT /api/schedule/:id + */ + async updateSchedule(req, res) { + try { + const { id } = req.params; + const { title, start_time, end_time } = req.body; + + const userId = req.user.id; + const schedule = await ScheduleService.updateSchedule(id, userId, + { + title, + start_time, + end_time + }); + + return res.statu(200).json({ + success: true, + data: schedule + }); + } catch (error) { + if (error.message === 'Schedule not found') { + return res.status(404).json({ + success: false, + error: { + message: error.message, + code: 'SCHEDULE_NOT_FOUND' + } + }); + } + return res.status(400).json({ + success: false, + error: { + message: error.message, + code: 'SCHEDULE_UPDATE_ERROR' + } + }); + } } \ No newline at end of file