Skip to content
Snippets Groups Projects
Commit 04004ee2 authored by Wo-ogie's avatar Wo-ogie
Browse files

feat: 약속 목적별 많이 선택한 시간 조회 시 top 3 데이터를 조회하도록 수정

parent ab1f0ec1
No related branches found
No related tags found
No related merge requests found
...@@ -196,14 +196,16 @@ exports.getMeetingDetailById = async (req, res, next) => { ...@@ -196,14 +196,16 @@ exports.getMeetingDetailById = async (req, res, next) => {
} }
}; };
exports.getMostConfirmedTime = async (req, res, next) => { exports.getTopThreeConfirmedTimes = async (req, res, next) => {
const { purpose } = req.query; const { purpose } = req.query;
if (!purpose) { if (!purpose) {
return res.status(400).json({ message: 'Purpose is required' }); return res.status(400).json({ message: 'Purpose is required' });
} }
try { try {
const result = await meetingRepositotry.getMostConfirmedTime(purpose); const results = await meetingRepositotry.getTopThreeConfirmedTimes(purpose);
return res.json(result); return res.json({
topThreeConfirmedTimes: results,
});
} catch (error) { } catch (error) {
return next(error); return next(error);
} }
......
...@@ -4,7 +4,7 @@ const { ...@@ -4,7 +4,7 @@ const {
createMostConfirmedTimeNotFoundError, createMostConfirmedTimeNotFoundError,
} = require('../errors/meetingErrors'); } = require('../errors/meetingErrors');
exports.getMostConfirmedTime = async (purpose) => { exports.getTopThreeConfirmedTimes = async (purpose) => {
const query = ` const query = `
SELECT EXTRACT(HOUR FROM m.confirmed_time) AS confirmed_time_hour, SELECT EXTRACT(HOUR FROM m.confirmed_time) AS confirmed_time_hour,
COUNT(1) AS confirmed_time_count COUNT(1) AS confirmed_time_count
...@@ -18,14 +18,13 @@ exports.getMostConfirmedTime = async (purpose) => { ...@@ -18,14 +18,13 @@ exports.getMostConfirmedTime = async (purpose) => {
const params = { const params = {
replacements: { purpose }, replacements: { purpose },
type: Sequelize.QueryTypes.SELECT, type: Sequelize.QueryTypes.SELECT,
plain: true,
}; };
const result = await sequelize.query(query, params); const results = await sequelize.query(query, params);
if (!result) { if (!results || results.length === 0) {
throw createMostConfirmedTimeNotFoundError(); throw createMostConfirmedTimeNotFoundError();
} }
return { return results.slice(0, 3).map((result) => ({
hour: result.confirmed_time_hour, hour: result.confirmed_time_hour,
count: result.confirmed_time_count, count: result.confirmed_time_count,
}; }));
}; };
...@@ -5,7 +5,7 @@ const { ...@@ -5,7 +5,7 @@ const {
entry, entry,
getMeetingById, getMeetingById,
getMeetingDetailById, getMeetingDetailById,
getMostConfirmedTime, getTopThreeConfirmedTimes,
closeMeeting, closeMeeting,
confirmTime, confirmTime,
} = require('../controllers/meeting'); } = require('../controllers/meeting');
...@@ -14,7 +14,7 @@ const router = express.Router(); ...@@ -14,7 +14,7 @@ const router = express.Router();
router.post('/', createMeeting); router.post('/', createMeeting);
router.get('/most-confirmed-time', getMostConfirmedTime); router.get('/top-three-confirmed-times', getTopThreeConfirmedTimes);
router.post('/:meetingId/entry', entry); router.post('/:meetingId/entry', entry);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment