import express from "express"; import { authenticateToken } from "../middleware/authMiddleware"; import { createTableRelationship, getTableRelationships, getTableRelationship, updateTableRelationship, deleteTableRelationship, createDataLink, getLinkedDataByRelationship, deleteDataLink, getTableData, getDataFlowDiagrams, getDiagramRelationships, getDiagramRelationshipsByDiagramId, getDiagramRelationshipsByRelationshipId, copyDiagram, deleteDiagram, } from "../controllers/dataflowController"; const router = express.Router(); // 모든 라우트에 인증 미들웨어 적용 router.use(authenticateToken); /** * 테이블 관계 생성 * POST /api/dataflow/table-relationships */ router.post("/table-relationships", createTableRelationship); /** * 테이블 관계 목록 조회 (회사별) * GET /api/dataflow/table-relationships */ router.get("/table-relationships", getTableRelationships); /** * 특정 테이블 관계 조회 * GET /api/dataflow/table-relationships/:relationshipId */ router.get("/table-relationships/:relationshipId", getTableRelationship); /** * 테이블 관계 수정 * PUT /api/dataflow/table-relationships/:relationshipId */ router.put("/table-relationships/:relationshipId", updateTableRelationship); /** * 테이블 관계 삭제 * DELETE /api/dataflow/table-relationships/:relationshipId */ router.delete("/table-relationships/:relationshipId", deleteTableRelationship); // ==================== 데이터 연결 관리 라우트 ==================== /** * 데이터 연결 생성 * POST /api/dataflow/data-links */ router.post("/data-links", createDataLink); /** * 관계별 연결된 데이터 조회 * GET /api/dataflow/data-links/relationship/:relationshipId */ router.get( "/data-links/relationship/:relationshipId", getLinkedDataByRelationship ); /** * 데이터 연결 삭제 * DELETE /api/dataflow/data-links/:bridgeId */ router.delete("/data-links/:bridgeId", deleteDataLink); // ==================== 테이블 데이터 조회 라우트 ==================== /** * 테이블 실제 데이터 조회 * GET /api/dataflow/table-data/:tableName */ router.get("/table-data/:tableName", getTableData); // ==================== 관계도 관리 라우트 ==================== /** * 관계도 목록 조회 (관계도 이름별로 그룹화) * GET /api/dataflow/diagrams */ router.get("/diagrams", getDataFlowDiagrams); /** * 특정 관계도의 모든 관계 조회 (diagram_id로) * GET /api/dataflow/diagrams/:diagramId/relationships */ router.get( "/diagrams/:diagramId/relationships", getDiagramRelationshipsByDiagramId ); /** * 특정 관계도의 모든 관계 조회 (diagramName으로 - 하위 호환성) * GET /api/dataflow/diagrams/name/:diagramName/relationships */ router.get( "/diagrams/name/:diagramName/relationships", getDiagramRelationships ); /** * 관계도 복사 * POST /api/dataflow/diagrams/:diagramName/copy */ router.post("/diagrams/:diagramName/copy", copyDiagram); /** * 관계도 삭제 * DELETE /api/dataflow/diagrams/:diagramName */ router.delete("/diagrams/:diagramName", deleteDiagram); // relationship_id로 관계도 관계 조회 (하위 호환성) router.get( "/relationships/:relationshipId/diagram", getDiagramRelationshipsByRelationshipId ); export default router;