wing-ops/backend/src/roles/roleRouter.ts
htlee a0f64e4b11 style: 기존 코드 ESLint/TypeScript 에러 수정
- frontend: ESLint 에러 86건 수정 (unused-vars, set-state-in-effect, static-components 등)
- backend: simulation.ts req.params 타입 단언 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:47:29 +09:00

60 lines
1.7 KiB
TypeScript

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