From 4e52f79cd5e700c3a370a2da0edf9044eb15698a Mon Sep 17 00:00:00 2001 From: caadiq Date: Mon, 12 Jan 2026 17:52:27 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B0=B1=EC=97=94=EB=93=9C:=20=ED=8A=B8?= =?UTF-8?q?=EB=9E=99=20=EC=83=81=EC=84=B8=20API=20=EB=9D=BC=EC=9A=B0?= =?UTF-8?q?=ED=8A=B8=20=EC=88=9C=EC=84=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/routes/albums.js | 84 ++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 42 deletions(-) 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;