Skip to content

Commit 735372d

Browse files
authored
Merge pull request #74 from InserToken/feat/17-pracMain/minseon
[feat] 수정
2 parents 20bae13 + 19175ec commit 735372d

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

routes/userStock.js

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,30 @@ const router = express.Router();
33
const { getBalance } = require("../services/stockService");
44
const { authenticate } = require("../middleware/auth");
55
const UserStock = require("../models/UserStock");
6+
const RealScore = require("../models/RealScore");
7+
// const UserStock = require("../models/UserStock");
8+
const Auth = require("../models/Auth");
9+
10+
router.delete("/cleanup-orphans", async (req, res) => {
11+
try {
12+
// 1. 모든 유효한 user _id 조회
13+
const validUserIds = await RealScore.distinct("user_stock_id");
14+
15+
// 2. UserStock에서 user_id가 없는 _id만 찾기
16+
const result = await UserStock.deleteMany({
17+
_id: { $nin: validUserIds },
18+
});
19+
20+
return res.json({
21+
message: "고아 UserStock 삭제 완료",
22+
deletedCount: result.deletedCount,
23+
});
24+
} catch (err) {
25+
console.error("[고아 UserStock 삭제 오류]", err);
26+
res.status(500).json({ error: "서버 에러" });
27+
}
28+
});
629

7-
// 보유 주식 저장
830
// 보유 주식 저장
931
router.post("/", authenticate, async (req, res) => {
1032
const cano = "50143725";
@@ -30,14 +52,13 @@ router.post("/", authenticate, async (req, res) => {
3052
});
3153
} catch (err) {
3254
if (err.code === 11000) {
33-
// 이미 연동된 경우 DB에서 해당 유저의 주식 다시 조회해서 내려주기!
3455
const existingStocks = await UserStock.find({ user_id: userId }).populate(
3556
"stock_code"
3657
);
37-
// 필요한 정보만 추리기
58+
3859
const formatted = existingStocks.map((s) => ({
39-
pdno: s.stock_code,
40-
prdt_name: s.stock_code.name || "", // company 필드가 없다면 적절히 수정!
60+
pdno: s.stock_code.code || s.stock_code._id.toString(), // ✅ 문자열로 보장
61+
prdt_name: s.stock_code.name || "",
4162
}));
4263

4364
return res.status(200).json({

0 commit comments

Comments
 (0)