// 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;