diff --git a/backend/routes/albums.js b/backend/routes/albums.js index b57c168..2544011 100644 --- a/backend/routes/albums.js +++ b/backend/routes/albums.js @@ -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;