From 360e88be6224c6e47f6c2866f0e0c2058e0295a1 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: Fri, 15 Nov 2024 10:46:52 +0900
Subject: [PATCH] =?UTF-8?q?feat:=20=EC=8A=A4=EC=BC=80=EC=A4=84=20=EC=83=9D?=
 =?UTF-8?q?=EC=84=B1=20=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC=20(#6)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 controllers/scheduleController.js | 39 +++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/controllers/scheduleController.js b/controllers/scheduleController.js
index e69de29..9233af6 100644
--- a/controllers/scheduleController.js
+++ b/controllers/scheduleController.js
@@ -0,0 +1,39 @@
+const ScheduleService = require('../services/scheduleService');
+
+class scheduleController {
+    /**
+     * 스케줄 생성
+     * POST /api/schedules
+     * 해당 사용자 id는 auth 미들웨어에서 설정된 사용자 정보 이용
+     * req.user = User 모델의 인스턴스
+     */
+    async createSchedule(req, res) {
+        try {
+            const userId = req.user.id;
+            const { title, start_time, end_time, is_fixed } = req.body;
+
+            const schedule = await ScheduleService.createSchedule({
+                userId,
+                title,
+                start_time,
+                end_time,
+                is_fixed
+            });
+
+            return res.status(201).json({
+                success: true,
+                data: {
+                    schedule
+                }
+            });
+        } catch (error) {
+            return res.status(400).json({
+                success: false,
+                error: {
+                    message: error.message,
+                    code: 'SCHEDULE_CREATE_ERROR'
+                }
+            });
+        }
+    }
+}
\ No newline at end of file
-- 
GitLab