47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { Router } from "express";
|
|
import { authenticateToken } from "../middleware/authMiddleware";
|
|
import * as departmentController from "../controllers/departmentController";
|
|
|
|
const router = Router();
|
|
|
|
// 인증 미들웨어 적용
|
|
router.use(authenticateToken);
|
|
|
|
/**
|
|
* 부서 관리 API 라우트
|
|
* 기본 경로: /api/departments
|
|
*/
|
|
|
|
// 부서 목록 조회 (회사별)
|
|
router.get("/companies/:companyCode/departments", departmentController.getDepartments);
|
|
|
|
// 부서 상세 조회
|
|
router.get("/:deptCode", departmentController.getDepartment);
|
|
|
|
// 부서 생성
|
|
router.post("/companies/:companyCode/departments", departmentController.createDepartment);
|
|
|
|
// 부서 수정
|
|
router.put("/:deptCode", departmentController.updateDepartment);
|
|
|
|
// 부서 삭제
|
|
router.delete("/:deptCode", departmentController.deleteDepartment);
|
|
|
|
// 부서원 목록 조회
|
|
router.get("/:deptCode/members", departmentController.getDepartmentMembers);
|
|
|
|
// 사용자 검색 (부서원 추가용)
|
|
router.get("/companies/:companyCode/users/search", departmentController.searchUsers);
|
|
|
|
// 부서원 추가
|
|
router.post("/:deptCode/members", departmentController.addDepartmentMember);
|
|
|
|
// 부서원 제거
|
|
router.delete("/:deptCode/members/:userId", departmentController.removeDepartmentMember);
|
|
|
|
// 주 부서 설정
|
|
router.put("/:deptCode/members/:userId/primary", departmentController.setPrimaryDepartment);
|
|
|
|
export default router;
|
|
|