Files
tk-factory-services/tksupport/api/routes/vacationRoutes.js
Hyungi Ahn 3011495e6d feat(tksupport): 전사 행정지원 서비스 신규 구축 (Phase 1 - 휴가신청)
sso_users 기반 전사 휴가신청/승인/잔여일 관리 서비스.
기존 tkfb의 workers 종속 휴가 기능을 전사 확장.

- API: Express + MariaDB, SSO JWT 인증, 자동 마이그레이션
- Web: 대시보드, 휴가 신청/현황/승인 페이지 (보라색 테마)
- DB: sp_vacation_requests, sp_vacation_balances 신규 테이블
- Docker: API(30600), Web(30680) 포트 구성

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 15:39:59 +09:00

33 lines
1.1 KiB
JavaScript

const express = require('express');
const router = express.Router();
const { requireAuth, requireAdmin } = require('../middleware/auth');
const ctrl = require('../controllers/vacationController');
router.use(requireAuth);
// 참조 데이터
router.get('/types', ctrl.getVacationTypes);
// 휴가 신청
router.post('/requests', ctrl.createRequest);
router.get('/requests', ctrl.getRequests);
router.get('/requests/:id', ctrl.getRequestById);
router.put('/requests/:id', ctrl.updateRequest);
router.patch('/requests/:id/cancel', ctrl.cancelRequest);
// 승인 (관리자)
router.get('/pending', requireAdmin, ctrl.getPending);
router.patch('/requests/:id/approve', requireAdmin, ctrl.approveRequest);
router.patch('/requests/:id/reject', requireAdmin, ctrl.rejectRequest);
// 잔여일
router.get('/balance', ctrl.getMyBalance);
router.get('/balance/all', requireAdmin, ctrl.getAllBalances);
router.get('/balance/:userId', requireAdmin, ctrl.getUserBalance);
router.post('/balance/allocate', requireAdmin, ctrl.allocateBalance);
// 사용자 목록 (관리자)
router.get('/users', requireAdmin, ctrl.getUsers);
module.exports = router;