From 3ab156cd56864f27531c3f0db7d33f4aac54e1be Mon Sep 17 00:00:00 2001 From: caadiq Date: Tue, 23 Dec 2025 16:33:51 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=AA=A8=EB=93=9C=ED=8C=A9=20=EC=88=98?= =?UTF-8?q?=EC=A0=95/=EC=82=AD=EC=A0=9C=20API=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PUT /api/admin/modpacks/:id: 변경 로그 수정 - DELETE /api/admin/modpacks/:id: 모드팩 삭제 (DB) --- backend/routes/admin.js | 58 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/backend/routes/admin.js b/backend/routes/admin.js index 6f8ee3a..7ce72e4 100644 --- a/backend/routes/admin.js +++ b/backend/routes/admin.js @@ -473,4 +473,62 @@ router.post( } ); +/** + * PUT /api/admin/modpacks/:id - 모드팩 수정 (변경 로그만) + */ +router.put("/modpacks/:id", async (req, res) => { + try { + const { id } = req.params; + const { changelog } = req.body; + + const [result] = await pool.query( + `UPDATE modpacks SET changelog = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?`, + [changelog, id] + ); + + if (result.affectedRows === 0) { + return res.status(404).json({ error: "모드팩을 찾을 수 없습니다" }); + } + + console.log(`[Admin] 모드팩 수정 완료: ID ${id}`); + res.json({ success: true }); + } catch (error) { + console.error("[Admin] 모드팩 수정 오류:", error); + res.status(500).json({ error: "수정 실패" }); + } +}); + +/** + * DELETE /api/admin/modpacks/:id - 모드팩 삭제 + */ +router.delete("/modpacks/:id", async (req, res) => { + try { + const { id } = req.params; + + // DB에서 파일 정보 조회 + const [rows] = await pool.query(`SELECT * FROM modpacks WHERE id = ?`, [ + id, + ]); + if (rows.length === 0) { + return res.status(404).json({ error: "모드팩을 찾을 수 없습니다" }); + } + + const modpack = rows[0]; + + // S3에서 삭제 (deleteFromS3 함수 필요 - 일단 생략, 나중에 추가) + // TODO: S3 파일 삭제 구현 + + // DB에서 삭제 + await pool.query(`DELETE FROM modpacks WHERE id = ?`, [id]); + + console.log( + `[Admin] 모드팩 삭제 완료: ${modpack.name} v${modpack.version}` + ); + res.json({ success: true }); + } catch (error) { + console.error("[Admin] 모드팩 삭제 오류:", error); + res.status(500).json({ error: "삭제 실패" }); + } +}); + export default router;