Skip to content

Commit 7296dba

Browse files
Merge pull request #59 from InserToken/feat/52-financialChart-jihwan
my
2 parents 4ba6542 + 83218c7 commit 7296dba

File tree

3 files changed

+47
-42
lines changed

3 files changed

+47
-42
lines changed

app.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ var authRouter = require("./routes/auth");
1313
var userStockRouter = require("./routes/userStock");
1414
var myPageRouter = require("./routes/myPage");
1515
const practiceProblemSeedRouter = require("./routes/practiceProblemSeedRouter");
16-
const practiceScoreRouter = require("./routes/practicescores");
1716
const stockSeedRouter = require("./routes/stockSeedRouter");
1817
const holidayRouter = require("./routes/holiday");
1918
const practiceProblemRouter = require("./routes/practiceProblem");
@@ -76,10 +75,8 @@ app.use("/api/financial", financialRouter);
7675
const newsRouter = require("./routes/news");
7776
app.use("/api", newsRouter);
7877
app.use("/api/rank", rankRouter);
79-
app.use("/api/practicescores", practiceScoreRouter);
8078
const fetchFinancialData = require("./routes/financialRoutes");
8179
app.use("/api", fetchFinancialData);
82-
app.use("/api", require("./routes/fetchAllFinancials"));
8380
/* --------------------------------------- */
8481
require("./services/getHoliday");
8582
require("./tasks/dailyStockUpdater");

routes/myPage.js

Lines changed: 42 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,42 +30,61 @@ router.get("/practice", authenticate, async (req, res) => {
3030
});
3131

3232
//실전 문제 조회
33-
router.get("/real", authenticate, async (req, res) => {
33+
router.get("/real/scores", authenticate, async (req, res) => {
3434
const userId = req.user._id;
35+
3536
try {
36-
const hasStock = await UserStock.exists({ user_id: userId });
37+
// 1. 사용자의 보유 주식 전체 조회
38+
const userStocks = await UserStock.find({ user_id: userId });
39+
40+
// 2. 각 주식에 대해 RealScore 조회
41+
const result = await Promise.all(
42+
userStocks.map(async (stock) => {
43+
const scores = await RealScore.find({ user_stock_id: stock._id });
44+
45+
return {
46+
stock_code: stock.stock_code,
47+
stock_id: stock._id,
48+
scores: scores.map((score) => ({
49+
score: score.score,
50+
date: score.date,
51+
})),
52+
};
53+
})
54+
);
3755

3856
res.status(200).json({
39-
hasHoldings: !!hasStock, // boolean 값으로 변경
57+
success: true,
58+
data: result,
4059
});
4160
} catch (err) {
42-
console.error("보유 주식 확인 에러:", err);
61+
console.error("실전투자 점수 조회 에러:", err);
4362
res.status(500).json({ message: "서버 에러" });
4463
}
4564
});
4665

47-
//실전 문제 전체 조회
48-
router.get("/realscore", authenticate, async (req, res) => {
49-
const userId = req.user._id;
66+
// //실전 문제 전체 조회
67+
// router.get("/realscore", authenticate, async (req, res) => {
68+
// const userId = req.user._id;
5069

51-
try {
52-
// 1. 해당 사용자의 UserStock ID 목록 조회
53-
const userStocks = await UserStock.find({ user_id: userId }).select("_id");
70+
// try {
71+
// // 1. 해당 사용자의 UserStock ID 목록 조회
72+
// const userStocks = await UserStock.find({ user_id: userId }).select("_id");
5473

55-
const userStockIds = userStocks.map((stock) => stock._id);
74+
// const userStockIds = userStocks.map((stock) => stock._id);
5675

57-
// 2. RealScore에서 그 중 하나라도 있나 확인
58-
const hasScore = await RealScore.exists({
59-
user_stock_id: { $in: userStockIds },
60-
});
76+
// // 2. RealScore에서 그 중 하나라도 있나 확인
77+
// const hasScore = await RealScore.exists({
78+
// user_stock_id: { $in: userStockIds },
79+
// });
6180

62-
res.status(200).json({
63-
hasHoldings: !!hasScore,
64-
});
65-
} catch (err) {
66-
console.error("보유 주식 확인 에러:", err);
67-
res.status(500).json({ message: "서버 에러" });
68-
}
69-
});
81+
// res.status(200).json({
82+
// hasHoldings: !!hasScore,
83+
// });
84+
// } catch (err) {
85+
// console.error("보유 주식 확인 에러:", err);
86+
// res.status(500).json({ message: "서버 에러" });
87+
// }
88+
// });
7089

7190
module.exports = router;

routes/userStock.js

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,7 @@ router.post("/", authenticate, async (req, res) => {
2828
output1: result.output1,
2929
});
3030
} catch (err) {
31-
if (err.code === 11000) {
32-
// 이미 연동된 경우 DB에서 해당 유저의 주식 다시 조회해서 내려주기!
33-
const existingStocks = await UserStock.find({ user_id: userId });
34-
// 필요한 정보만 추리기
35-
const formatted = existingStocks.map((s) => ({
36-
pdno: s.stock_code,
37-
prdt_name: s.company || "", // company 필드가 없다면 적절히 수정!
38-
}));
39-
40-
return res.status(200).json({
41-
success: true,
42-
message: "이미 연동된 주식이 있습니다.",
43-
output1: formatted,
44-
});
45-
}
31+
console.error("계좌 연동 오류:", err.message);
4632
res.status(500).json({ error: "계좌 연동 실패" });
4733
}
4834
});
@@ -55,7 +41,10 @@ router.get("/stock", authenticate, async (req, res) => {
5541
"stock_code"
5642
);
5743
// stock_code만 추출
58-
const stockOnly = userStock.map((s) => s.stock_code);
44+
const stockOnly = userStock.map((s) => ({
45+
stock_code: s.stock_code, // populate된 종목 정보 전체
46+
cumulative_score: s.cumulative_score, // 보유 주식 문서의 필드
47+
}));
5948
res.json({
6049
message: "보유 주식 코드만 추출 완료",
6150
stocks: stockOnly,

0 commit comments

Comments
 (0)