const express = require("express") const adminService = require("../../../../services/adminService") const router = express.Router({ mergeParams: true }) router.post("/", async (req, res) => { const { name, icon, condition, description } = req.body const badge = await adminService.createBadge({ name, icon, condition, description }) return res.status(201).json(badge) }) router.patch("/:badgeId", async (req, res) => { const { badgeId } = req.params const updateData = req.body.data const badge = await adminService.updateBadge({ badgeId, updateData }) return res.status(200).json(badge) }) router.delete("/:badgeId", async (req, res) => { const { badgeId } = req.params await adminService.deleteBadge({ badgeId }) return res.sendStatus(204) }) router.put("/user/:userId/:badgeId", async (req, res) => { const { badgeId, userId } = req.params const assignedBadge = await adminService.assignBadgeToUser({ badgeId, userId }) return res.status(200).json(assignedBadge) }) router.delete("/user/:userId/:badgeId", async (req, res) => { const { badgeId, userId } = req.params await adminService.removeBadgeFromUser({ badgeId, userId }) return res.sendStatus(204) }) router.get("/all", async (req, res) => { const badges = await adminService.getAllBadges() return res.status(200).json(badges) }) router.get("/:badgeId", async (req, res) => { const { badgeId } = req.params.badgeId const badge = await adminService.getBadgeById({ badgeId }) return res.status(200).json(badge) }) module.exports = router