import { Router } from "express"; import { FlowExternalDbConnectionController } from "../controllers/flowExternalDbConnectionController"; import { authenticateToken } from "../middleware/authMiddleware"; const router = Router(); const controller = new FlowExternalDbConnectionController(); /** * 플로우 전용 외부 DB 연결 라우트 * 기존 제어관리 외부 DB 연결과 별도 */ // 모든 외부 DB 연결 목록 조회 (읽기 전용 - 인증 불필요) // 민감한 정보(비밀번호)는 반환하지 않으므로 안전 router.get("/", (req, res) => controller.getAll(req, res)); // 특정 외부 DB 연결 조회 router.get("/:id", authenticateToken, (req, res) => controller.getById(req, res) ); // 새 외부 DB 연결 생성 router.post("/", authenticateToken, (req, res) => controller.create(req, res)); // 외부 DB 연결 수정 router.put("/:id", authenticateToken, (req, res) => controller.update(req, res) ); // 외부 DB 연결 삭제 router.delete("/:id", authenticateToken, (req, res) => controller.delete(req, res) ); // 외부 DB 연결 테스트 router.post("/:id/test", authenticateToken, (req, res) => controller.testConnection(req, res) ); // 외부 DB의 테이블 목록 조회 (읽기 전용 - 인증 불필요) router.get("/:id/tables", (req, res) => controller.getTables(req, res)); // 외부 DB의 특정 테이블의 컬럼 목록 조회 (읽기 전용 - 인증 불필요) router.get("/:id/tables/:tableName/columns", (req, res) => controller.getTableColumns(req, res) ); export default router;