From 159a6944906ed4356958645faba02f3514e53de2 Mon Sep 17 00:00:00 2001 From: Wo-ogie <siwall0105@gmail.com> Date: Sun, 10 Dec 2023 03:09:03 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=AF=B8=ED=8C=85=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=20=EC=8B=9C=20expiresAt=EC=97=90=20=EC=A7=80=EC=A0=95=EB=90=9C?= =?UTF-8?q?=20=EC=8B=9C=EA=B0=84=EC=97=90=20=EC=9E=90=EB=8F=99=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=A2=85=EB=A3=8C=EB=90=98=EB=8F=84=EB=A1=9D=20sch?= =?UTF-8?q?eling=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/meeting.js | 7 +++++++ services/meeting.js | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/controllers/meeting.js b/controllers/meeting.js index d897d04..4e0771e 100644 --- a/controllers/meeting.js +++ b/controllers/meeting.js @@ -1,4 +1,6 @@ +const schedule = require('node-schedule'); const bcrypt = require('bcrypt'); + const { Meeting, Participant } = require('../models'); const meetingRepository = require('../repository/meeting'); const { @@ -102,6 +104,11 @@ exports.createMeeting = async (req, res, next) => { voteExpiresAt: req.body.voteExpiresAt, confirmedTime: null, }); + + schedule.scheduleJob(meeting.voteExpiresAt, async () => { + await closeMeetingById(meeting.id); + }); + return res.status(201).json(MeetingResponse.from(meeting)); } catch (error) { return next(error); diff --git a/services/meeting.js b/services/meeting.js index 1643eda..30f5971 100644 --- a/services/meeting.js +++ b/services/meeting.js @@ -64,7 +64,7 @@ function validateMeetingIsNotClosed(meeting) { } const closeMeetingById = async (meetingId) => { - const meeting = await getMeetingById(meetingId); + const meeting = await getMeetingWithParticipantsById(meetingId); validateMeetingIsNotClosed(meeting); meeting.isClosed = true; -- GitLab