Phase 1: tksafety에 출입신청/체크리스트 API·웹 추가, tkfb 안전 코드 삭제
Phase 2: 사용자 관리 페이지 삭제, API 축소, 알림 수신자 tkuser 이관
Phase 3: tkuser 권한 페이지 정의 업데이트
Phase 4: 전체 34개 페이지 Tailwind CSS + tkfb-core.js 전환,
미사용 CSS 20개·인프라 JS 10개·템플릿·컴포넌트 삭제
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
36 lines
2.0 KiB
JavaScript
36 lines
2.0 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const visitRequestController = require('../controllers/visitRequestController');
|
|
const { requireAuth, requireAdmin, requirePage } = require('../middleware/auth');
|
|
|
|
router.use(requireAuth);
|
|
|
|
// Visit requests CRUD
|
|
router.post('/requests', requirePage('safety_visit_request'), visitRequestController.createVisitRequest);
|
|
router.get('/requests', visitRequestController.getAllVisitRequests);
|
|
router.get('/requests/:id', visitRequestController.getVisitRequestById);
|
|
router.put('/requests/:id', requirePage('safety_visit_request'), visitRequestController.updateVisitRequest);
|
|
router.delete('/requests/:id', requirePage('safety_visit_request'), visitRequestController.deleteVisitRequest);
|
|
router.put('/requests/:id/approve', requireAdmin, visitRequestController.approveVisitRequest);
|
|
router.put('/requests/:id/reject', requireAdmin, visitRequestController.rejectVisitRequest);
|
|
|
|
// Categories & Workplaces
|
|
router.get('/categories', visitRequestController.getAllCategories);
|
|
router.get('/workplaces', visitRequestController.getWorkplaces);
|
|
|
|
// Visit purposes
|
|
router.get('/purposes', visitRequestController.getAllVisitPurposes);
|
|
router.get('/purposes/active', visitRequestController.getActiveVisitPurposes);
|
|
router.post('/purposes', requireAdmin, visitRequestController.createVisitPurpose);
|
|
router.put('/purposes/:id', requireAdmin, visitRequestController.updateVisitPurpose);
|
|
router.delete('/purposes/:id', requireAdmin, visitRequestController.deleteVisitPurpose);
|
|
|
|
// Training records
|
|
router.post('/training', requireAdmin, visitRequestController.createTrainingRecord);
|
|
router.get('/training', visitRequestController.getTrainingRecords);
|
|
router.get('/training/request/:requestId', visitRequestController.getTrainingRecordByRequestId);
|
|
router.put('/training/:id', requireAdmin, visitRequestController.updateTrainingRecord);
|
|
router.post('/training/:id/complete', requireAdmin, visitRequestController.completeTraining);
|
|
|
|
module.exports = router;
|