From ecbb6dbee71aebf2728d993d9e210bec162b0764 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 14:05:49 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=8A=A4=EC=BC=80=EC=A4=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20&=20=EB=A7=8C=EB=A3=8C=EC=9D=BC=20=EA=B5=AC?= =?UTF-8?q?=ED=95=98=EA=B8=B0=20=EC=88=98=EC=A0=95=20(#6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/scheduleService.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/services/scheduleService.js b/services/scheduleService.js index 5e91cbc..1cd9d12 100644 --- a/services/scheduleService.js +++ b/services/scheduleService.js @@ -54,13 +54,16 @@ class scheduleService { /** * 유동 스케줄 만료일 구하기 */ - getNextMonday() { - const date = new Date(); + getNextMonday(startTime) { + const date = new Date(startTime); const day = date.getDay(); - const daysUntilNextMonday = (8 - day) % 7; - date.setDate(date.getDate() + daysUntilNextMonday); - date.setHours(0, 0, 0, 0); - return date; + const daysUntilNextMonday = (7 - day + 1) % 7; + + const nextMonday = new Date(date); + nextMonday.setDate(date.getDate() + daysUntilNextMonday); + nextMonday.setHours(0, 0, 0, 0); // 자정으로 설정 + + return nextMonday; } /** @@ -81,7 +84,7 @@ class scheduleService { start_time, end_time, is_fixed, - expiry_date: is_fixed ? null : this.getNextMonday() + expiry_date: is_fixed ? null : this.getNextMonday(start_time) }; return Schedule.create(scheduleData, { transaction }); @@ -114,8 +117,15 @@ class scheduleService { throw new Error('Schedule overlaps with existing schedule'); } - delete updateData.is_fixed; - return schedule.update(updateData, { transaction }); + const is_fixed = schedule.is_fixed; + const updatedData = { + ...updateData, + expiry_date: is_fixed ? null : this.getNextMonday(updateData.start_time), + updatedAt: new Date() + }; + delete updatedData.is_fixed; + + return schedule.update(updatedData, { transaction }); }); } -- GitLab