import express from "express"; import { authenticateToken } from "../middleware/authMiddleware"; import { createTableRelationship, getTableRelationships, getTableRelationship, updateTableRelationship, deleteTableRelationship, createDataLink, getLinkedDataByRelationship, deleteDataLink, getTableData, } 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); export default router;