duckil_plm/fems-api/src/controllers/app/department/department.controller.js
2024-11-05 21:55:38 +09:00

46 lines
1.3 KiB
JavaScript

// src/controllers/app/department/department.controller.js
const express = require("express");
const router = express.Router();
const departmentService = require("../../../services/department.service");
const authMiddleware = require("../../../middleware/auth.middleware");
const roleCheck = require("../../../middleware/roleCheck.middleware");
const { query } = require("express-validator");
const validate = require("../../../middleware/validator.middleware");
// 인증 및 권한 확인
router.use(authMiddleware);
router.use(roleCheck(["super_admin", "company_admin", "branch_admin", "user"]));
// 부서 목록 조회 (트리 구조 또는 평면 구조로 조회 가능)
router.get(
"/",
[
query("format")
.optional()
.isIn(["tree", "flat"])
.withMessage("유효한 형식이 아닙니다"),
query("includeInactive")
.optional()
.isBoolean()
.withMessage("유효한 값이 아닙니다"),
validate,
],
async (req, res, next) => {
try {
const format = req.query.format || "flat";
const includeInactive = req.query.includeInactive === "true";
const department = await departmentService.findAll(
req.user,
format,
includeInactive
);
res.json(department);
} catch (error) {
next(error);
}
}
);
module.exports = router;