import { Router } from 'express' import { requireAuth, requireRole } from '../auth/authMiddleware.js' import { listRolesWithPermissions, updatePermissions, updateRoleDefault } from './roleService.js' const router = Router() router.use(requireAuth) router.use(requireRole('ADMIN')) // GET /api/roles router.get('/', async (_req, res) => { try { const roles = await listRolesWithPermissions() res.json(roles) } catch (err) { console.error('[roles] 목록 조회 오류:', err) res.status(500).json({ error: '역할 목록 조회 중 오류가 발생했습니다.' }) } }) // PUT /api/roles/:id/permissions router.put('/:id/permissions', async (req, res) => { try { const roleSn = Number(req.params.id) const { permissions } = req.body if (!Array.isArray(permissions)) { res.status(400).json({ error: '권한 목록이 필요합니다.' }) return } await updatePermissions(roleSn, permissions) res.json({ success: true }) } catch (err) { console.error('[roles] 권한 수정 오류:', err) res.status(500).json({ error: '권한 수정 중 오류가 발생했습니다.' }) } }) // PUT /api/roles/:id/default — 기본 역할 토글 router.put('/:id/default', async (req, res) => { try { const roleSn = Number(req.params.id) const { isDefault } = req.body if (typeof isDefault !== 'boolean') { res.status(400).json({ error: 'isDefault 값이 필요합니다.' }) return } await updateRoleDefault(roleSn, isDefault) res.json({ success: true }) } catch (err) { console.error('[roles] 기본 역할 변경 오류:', err) res.status(500).json({ error: '기본 역할 변경 중 오류가 발생했습니다.' }) } }) export default router