60 lines
2.1 KiB
TypeScript
60 lines
2.1 KiB
TypeScript
import { Router } from "express";
|
|
import {
|
|
getAdminMenus,
|
|
getUserMenus,
|
|
getMenuInfo,
|
|
saveMenu, // 메뉴 추가
|
|
updateMenu, // 메뉴 수정
|
|
deleteMenu, // 메뉴 삭제
|
|
deleteMenusBatch, // 메뉴 일괄 삭제
|
|
getUserList,
|
|
getUserInfo, // 사용자 상세 조회
|
|
getDepartmentList, // 부서 목록 조회
|
|
checkDuplicateUserId, // 사용자 ID 중복 체크
|
|
saveUser, // 사용자 등록/수정
|
|
getCompanyList,
|
|
getCompanyListFromDB, // 실제 DB에서 회사 목록 조회
|
|
createCompany, // 회사 등록
|
|
updateCompany, // 회사 수정
|
|
deleteCompany, // 회사 삭제
|
|
getUserLocale,
|
|
setUserLocale,
|
|
} from "../controllers/adminController";
|
|
import { authenticateToken } from "../middleware/authMiddleware";
|
|
|
|
const router = Router();
|
|
|
|
// 모든 admin 라우트에 인증 미들웨어 적용
|
|
router.use(authenticateToken);
|
|
|
|
// 메뉴 관련 API
|
|
router.get("/menus", getAdminMenus);
|
|
router.get("/user-menus", getUserMenus);
|
|
router.get("/menus/:menuId", getMenuInfo);
|
|
router.post("/menus", saveMenu); // 메뉴 추가
|
|
router.put("/menus/:menuId", updateMenu); // 메뉴 수정
|
|
router.delete("/menus/batch", deleteMenusBatch); // 메뉴 일괄 삭제 (순서 중요!)
|
|
router.delete("/menus/:menuId", deleteMenu); // 메뉴 삭제
|
|
|
|
// 사용자 관리 API
|
|
router.get("/users", getUserList);
|
|
router.get("/users/:userId", getUserInfo); // 사용자 상세 조회
|
|
router.post("/users", saveUser); // 사용자 등록/수정
|
|
router.post("/users/check-duplicate", checkDuplicateUserId); // 사용자 ID 중복 체크
|
|
|
|
// 부서 관리 API
|
|
router.get("/departments", getDepartmentList); // 부서 목록 조회
|
|
|
|
// 회사 관리 API
|
|
router.get("/companies", getCompanyList);
|
|
router.get("/companies/db", getCompanyListFromDB); // 실제 DB에서 회사 목록 조회
|
|
router.post("/companies", createCompany); // 회사 등록
|
|
router.put("/companies/:companyCode", updateCompany); // 회사 수정
|
|
router.delete("/companies/:companyCode", deleteCompany); // 회사 삭제
|
|
|
|
// 사용자 로케일 API
|
|
router.get("/user-locale", getUserLocale);
|
|
router.post("/user-locale", setUserLocale);
|
|
|
|
export default router;
|