160 lines
3.7 KiB
TypeScript
160 lines
3.7 KiB
TypeScript
|
|
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;
|