백엔드: 트랙 상세 API 라우트 순서 수정

This commit is contained in:
caadiq 2026-01-12 17:52:27 +09:00
parent b18183a9f9
commit 4e52f79cd5

View file

@ -81,48 +81,7 @@ router.get("/", async (req, res) => {
}
});
// 앨범 folder_name 또는 title로 조회
router.get("/by-name/:name", async (req, res) => {
try {
const name = decodeURIComponent(req.params.name);
// folder_name 또는 title로 검색 (PC는 title, 모바일은 folder_name 사용)
const [albums] = await pool.query(
"SELECT * FROM albums WHERE folder_name = ? OR title = ?",
[name, name]
);
if (albums.length === 0) {
return res.status(404).json({ error: "앨범을 찾을 수 없습니다." });
}
const album = await getAlbumDetails(albums[0]);
res.json(album);
} catch (error) {
console.error("앨범 조회 오류:", error);
res.status(500).json({ error: "앨범 정보를 가져오는데 실패했습니다." });
}
});
// ID로 앨범 조회
router.get("/:id", async (req, res) => {
try {
const [albums] = await pool.query("SELECT * FROM albums WHERE id = ?", [
req.params.id,
]);
if (albums.length === 0) {
return res.status(404).json({ error: "앨범을 찾을 수 없습니다." });
}
const album = await getAlbumDetails(albums[0]);
res.json(album);
} catch (error) {
console.error("앨범 조회 오류:", error);
res.status(500).json({ error: "앨범 정보를 가져오는데 실패했습니다." });
}
});
// 앨범명과 트랙명으로 트랙 상세 조회
// 앨범명과 트랙명으로 트랙 상세 조회 (더 구체적인 경로이므로 /by-name/:name보다 앞에 배치)
router.get("/by-name/:albumName/track/:trackTitle", async (req, res) => {
try {
const albumName = decodeURIComponent(req.params.albumName);
@ -177,4 +136,45 @@ router.get("/by-name/:albumName/track/:trackTitle", async (req, res) => {
}
});
// 앨범 folder_name 또는 title로 조회
router.get("/by-name/:name", async (req, res) => {
try {
const name = decodeURIComponent(req.params.name);
// folder_name 또는 title로 검색 (PC는 title, 모바일은 folder_name 사용)
const [albums] = await pool.query(
"SELECT * FROM albums WHERE folder_name = ? OR title = ?",
[name, name]
);
if (albums.length === 0) {
return res.status(404).json({ error: "앨범을 찾을 수 없습니다." });
}
const album = await getAlbumDetails(albums[0]);
res.json(album);
} catch (error) {
console.error("앨범 조회 오류:", error);
res.status(500).json({ error: "앨범 정보를 가져오는데 실패했습니다." });
}
});
// ID로 앨범 조회
router.get("/:id", async (req, res) => {
try {
const [albums] = await pool.query("SELECT * FROM albums WHERE id = ?", [
req.params.id,
]);
if (albums.length === 0) {
return res.status(404).json({ error: "앨범을 찾을 수 없습니다." });
}
const album = await getAlbumDetails(albums[0]);
res.json(album);
} catch (error) {
console.error("앨범 조회 오류:", error);
res.status(500).json({ error: "앨범 정보를 가져오는데 실패했습니다." });
}
});
export default router;