50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import express from "express";
|
|
import { authenticateToken } from "../middleware/authMiddleware";
|
|
import {
|
|
saveFormData,
|
|
saveFormDataEnhanced,
|
|
updateFormData,
|
|
updateFormDataPartial,
|
|
updateFieldValue,
|
|
deleteFormData,
|
|
getFormData,
|
|
getFormDataList,
|
|
validateFormData,
|
|
getTableColumns,
|
|
getTablePrimaryKeys,
|
|
saveLocationHistory,
|
|
getLocationHistory,
|
|
} from "../controllers/dynamicFormController";
|
|
|
|
const router = express.Router();
|
|
|
|
// 모든 라우트에 인증 미들웨어 적용
|
|
router.use(authenticateToken);
|
|
|
|
// 폼 데이터 CRUD
|
|
router.post("/save", saveFormData); // 기존 버전 (레거시 지원)
|
|
router.post("/save-enhanced", saveFormDataEnhanced); // 개선된 버전
|
|
router.put("/update-field", updateFieldValue); // 특정 필드만 업데이트 (다른 테이블 지원) - /:id 보다 먼저 선언!
|
|
router.put("/:id", updateFormData);
|
|
router.patch("/:id/partial", updateFormDataPartial); // 부분 업데이트
|
|
router.delete("/:id", deleteFormData);
|
|
router.get("/:id", getFormData);
|
|
|
|
// 화면별 폼 데이터 목록 조회
|
|
router.get("/screen/:screenId", getFormDataList);
|
|
|
|
// 폼 데이터 검증
|
|
router.post("/validate", validateFormData);
|
|
|
|
// 테이블 컬럼 정보 조회 (검증용)
|
|
router.get("/table/:tableName/columns", getTableColumns);
|
|
|
|
// 테이블 기본키 조회
|
|
router.get("/table/:tableName/primary-keys", getTablePrimaryKeys);
|
|
|
|
// 위치 이력 (연속 위치 추적)
|
|
router.post("/location-history", saveLocationHistory);
|
|
router.get("/location-history/:tripId", getLocationHistory);
|
|
|
|
export default router;
|