ERP-node/backend-node/src/routes/screenManagementRoutes.ts

160 lines
3.7 KiB
TypeScript
Raw Normal View History

2025-09-01 11:48:12 +09:00
import express from "express";
import { ScreenManagementController } from "../controllers/screenManagementController";
import { authenticateToken } from "../middleware/authMiddleware";
const router = express.Router();
const screenController = new ScreenManagementController();
// 모든 라우트에 인증 미들웨어 적용
router.use(authenticateToken);
// ========================================
// 화면 정의 관리
// ========================================
/**
* @route POST /screens
* @desc
* @access Private
*/
router.post("/screens", screenController.createScreen.bind(screenController));
/**
* @route GET /screens
* @desc
* @access Private
*/
router.get("/screens", screenController.getScreens.bind(screenController));
/**
* @route GET /screens/:screenId
* @desc
* @access Private
*/
router.get(
"/screens/:screenId",
screenController.getScreen.bind(screenController)
);
/**
* @route PUT /screens/:screenId
* @desc
* @access Private
*/
router.put(
"/screens/:screenId",
screenController.updateScreen.bind(screenController)
);
/**
* @route DELETE /screens/:screenId
* @desc
* @access Private
*/
router.delete(
"/screens/:screenId",
screenController.deleteScreen.bind(screenController)
);
// ========================================
// 레이아웃 관리
// ========================================
/**
* @route GET /screens/:screenId/layout
* @desc
* @access Private
*/
router.get(
"/screens/:screenId/layout",
screenController.getLayout.bind(screenController)
);
/**
* @route POST /screens/:screenId/layout
* @desc
* @access Private
*/
router.post(
"/screens/:screenId/layout",
screenController.saveLayout.bind(screenController)
);
// ========================================
// 템플릿 관리
// ========================================
/**
* @route GET /templates
* @desc 릿
* @access Private
*/
router.get("/templates", screenController.getTemplates.bind(screenController));
/**
* @route POST /templates
* @desc 릿
* @access Private
*/
router.post(
"/templates",
screenController.createTemplate.bind(screenController)
);
// ========================================
// 메뉴 할당 관리
// ========================================
/**
* @route POST /screens/:screenId/menu-assignments
* @desc
* @access Private
*/
router.post(
"/screens/:screenId/menu-assignments",
screenController.assignScreenToMenu.bind(screenController)
);
/**
* @route GET /menus/:menuObjid/screens
* @desc
* @access Private
*/
router.get(
"/menus/:menuObjid/screens",
screenController.getScreensByMenu.bind(screenController)
);
// ========================================
// 테이블 타입 연계
// ========================================
/**
* @route GET /tables
* @desc
* @access Private
*/
router.get("/tables", screenController.getTables.bind(screenController));
/**
* @route GET /tables/:tableName/columns
* @desc
* @access Private
*/
router.get(
"/tables/:tableName/columns",
screenController.getTableColumns.bind(screenController)
);
/**
* @route PUT /tables/:tableName/columns/:columnName/web-type
* @desc
* @access Private
*/
router.put(
"/tables/:tableName/columns/:columnName/web-type",
screenController.setColumnWebType.bind(screenController)
);
export default router;