저장버튼 제어기능 (insert)
This commit is contained in:
89
backend-node/src/routes/testButtonDataflowRoutes.ts
Normal file
89
backend-node/src/routes/testButtonDataflowRoutes.ts
Normal file
@@ -0,0 +1,89 @@
|
||||
/**
|
||||
* 🧪 테스트 전용 버튼 데이터플로우 라우트 (인증 없음)
|
||||
*
|
||||
* 개발 환경에서만 사용되는 테스트용 API 엔드포인트
|
||||
*/
|
||||
|
||||
import express from "express";
|
||||
import {
|
||||
getButtonDataflowConfig,
|
||||
updateButtonDataflowConfig,
|
||||
getAvailableDiagrams,
|
||||
getDiagramRelationships,
|
||||
getRelationshipPreview,
|
||||
executeOptimizedButton,
|
||||
executeSimpleDataflow,
|
||||
getJobStatus,
|
||||
} from "../controllers/buttonDataflowController";
|
||||
import { AuthenticatedRequest } from "../types/auth";
|
||||
import config from "../config/environment";
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// 🚨 개발 환경에서만 활성화
|
||||
if (config.nodeEnv !== "production") {
|
||||
// 테스트용 사용자 정보 설정 미들웨어
|
||||
const setTestUser = (req: AuthenticatedRequest, res: any, next: any) => {
|
||||
req.user = {
|
||||
userId: "test-user",
|
||||
userName: "Test User",
|
||||
companyCode: "*",
|
||||
email: "test@example.com",
|
||||
};
|
||||
next();
|
||||
};
|
||||
|
||||
// 모든 라우트에 테스트 사용자 설정
|
||||
router.use(setTestUser);
|
||||
|
||||
// ============================================================================
|
||||
// 🧪 테스트 전용 API 엔드포인트들
|
||||
// ============================================================================
|
||||
|
||||
// 버튼별 제어관리 설정 조회
|
||||
router.get("/config/:buttonId", getButtonDataflowConfig);
|
||||
|
||||
// 버튼별 제어관리 설정 업데이트
|
||||
router.put("/config/:buttonId", updateButtonDataflowConfig);
|
||||
|
||||
// 사용 가능한 관계도 목록 조회
|
||||
router.get("/diagrams", getAvailableDiagrams);
|
||||
|
||||
// 특정 관계도의 관계 목록 조회
|
||||
router.get("/diagrams/:diagramId/relationships", getDiagramRelationships);
|
||||
|
||||
// 관계 미리보기 정보 조회
|
||||
router.get(
|
||||
"/diagrams/:diagramId/relationships/:relationshipId/preview",
|
||||
getRelationshipPreview
|
||||
);
|
||||
|
||||
// 최적화된 버튼 실행 (즉시 응답 + 백그라운드)
|
||||
router.post("/execute-optimized", executeOptimizedButton);
|
||||
|
||||
// 간단한 데이터플로우 즉시 실행
|
||||
router.post("/execute-simple", executeSimpleDataflow);
|
||||
|
||||
// 백그라운드 작업 상태 조회
|
||||
router.get("/job-status/:jobId", getJobStatus);
|
||||
|
||||
// 테스트 상태 확인 엔드포인트
|
||||
router.get("/test-status", (req: AuthenticatedRequest, res) => {
|
||||
res.json({
|
||||
success: true,
|
||||
message: "테스트 모드 활성화됨",
|
||||
user: req.user,
|
||||
environment: config.nodeEnv,
|
||||
});
|
||||
});
|
||||
} else {
|
||||
// 운영 환경에서는 접근 차단
|
||||
router.use((req, res) => {
|
||||
res.status(403).json({
|
||||
success: false,
|
||||
message: "테스트 API는 개발 환경에서만 사용 가능합니다.",
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user