From cd95b4137026816ee6f0d2df8518e2b8a8cc833b Mon Sep 17 00:00:00 2001 From: jinsoeun Date: Sat, 15 Feb 2025 03:05:44 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=8B=A4=EC=A4=91=EC=BF=BC=EB=A6=AC?= =?UTF-8?q?=EB=A5=BC=20=EC=9D=B4=EC=9A=A9=ED=95=9C=20=ED=82=A4=EC=9B=8C?= =?UTF-8?q?=EB=93=9C=EB=B3=84=20=EA=B0=9C=EC=88=98=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/domains/keyword/keywordController.js | 31 +++++++++++++++--------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/domains/keyword/keywordController.js b/src/domains/keyword/keywordController.js index 8a3399a..d307c8e 100644 --- a/src/domains/keyword/keywordController.js +++ b/src/domains/keyword/keywordController.js @@ -54,23 +54,32 @@ const getArticlesByCompany = async (req, res) => { }; const getArticleCounts = async (req, res) => { - const { keyword } = req.params; - console.log('개수 조회 키워드: ', keyword); + const keywords = req.query.keywords ? req.query.keywords.split(',') : []; - if (!keyword) { - return res.status(400).json({ error: "Keyword is required" }); + if (keywords.length === 0) { + return res.status(400).json({ error: "At least one keyword is required" }); } + console.log('개수 조회 키워드: ', keywords); + try { - const count = await fetchArticleCounts(keyword); - if (count === null) { - return res.status(404).json({ error: "Keyword not found in stats" }); - } + // 여러 키워드를 병렬로 조회 + const results = await Promise.all( + keywords.map(keyword => fetchArticleCounts(keyword)) + ); + + // 응답 데이터 정리 + const response = Object.fromEntries( + keywords.map((keyword, index) => [ + keyword, + results[index] || { error: "Keyword not found in stats" } + ]) + ); - res.status(200).json(count); + res.status(200).json(response); } catch (error) { - console.error("Error fetching article count:", error.message); - res.status(500).json({ error: "Failed to fetch article count" }); + console.error("Error fetching article counts:", error.message); + res.status(500).json({ error: "Failed to fetch article counts" }); } };