From ab1f0ec1baa097f447b99b0d0d579097a34e1616 Mon Sep 17 00:00:00 2001
From: Wo-ogie <siwall0105@gmail.com>
Date: Tue, 5 Dec 2023 11:47:44 +0900
Subject: [PATCH] =?UTF-8?q?feat:=20=EC=95=BD=EC=86=8D=20=EB=8B=A8=EA=B1=B4?=
 =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C,=20=EC=83=81=EC=84=B8=20=EC=A1=B0?=
 =?UTF-8?q?=ED=9A=8C=20API=20=EC=9D=91=EB=8B=B5=20=EB=8D=B0=EC=9D=B4?=
 =?UTF-8?q?=ED=84=B0=EC=97=90=20=ED=98=84=EC=9E=AC=20=EC=B0=B8=EA=B0=80?=
 =?UTF-8?q?=EC=9E=90=20=EC=88=98(`currentParticipants`)=20=EC=B6=94?=
 =?UTF-8?q?=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 controllers/meeting.js | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/controllers/meeting.js b/controllers/meeting.js
index 0ab9479..1b3a1f0 100644
--- a/controllers/meeting.js
+++ b/controllers/meeting.js
@@ -6,7 +6,6 @@ const {
   createMeetingIsAlreadyClosedError,
   createPasswordNotMatchedError,
   createPasswordIsNullError,
-  createMostConfirmedTimeNotFoundError,
 } = require('../errors/meetingErrors');
 const MeetingResponse = require('../dto/response/meetingResponse');
 const MeetingWithParticipantsResponse = require('../dto/response/meetingWithParticipantsResponse');
@@ -71,6 +70,14 @@ async function getParticipantByNameAndMeetingId(name, meetingId) {
   return participant;
 }
 
+async function getNumOfParticipantsByMeetingId(meetingId) {
+  return Participant.count({
+    where: {
+      MeetingId: meetingId,
+    },
+  });
+}
+
 async function validatePasswordIsMatched(requestPassword, exPassword) {
   if (!requestPassword) {
     throw createPasswordIsNullError();
@@ -160,7 +167,13 @@ exports.entry = async (req, res, next) => {
 exports.getMeetingById = async (req, res, next) => {
   try {
     const meeting = await getMeetingById(req.params.meetingId);
-    return res.json(MeetingResponse.from(meeting));
+    const currentParticipants = await getNumOfParticipantsByMeetingId(
+      meeting.id,
+    );
+    return res.json({
+      ...MeetingResponse.from(meeting),
+      currentParticipants,
+    });
   } catch (error) {
     return next(error);
   }
@@ -171,7 +184,13 @@ exports.getMeetingDetailById = async (req, res, next) => {
     const meeting = await getMeetingWithParticipantsAndSchedulesById(
       req.params.meetingId,
     );
-    return res.json(MeetingWithParticipantsResponse.from(meeting));
+    const currentParticipants = await getNumOfParticipantsByMeetingId(
+      meeting.id,
+    );
+    return res.json({
+      ...MeetingWithParticipantsResponse.from(meeting),
+      currentParticipants,
+    });
   } catch (error) {
     return next(error);
   }
-- 
GitLab