import express from "express"; import { authenticateToken } from "../middleware/authMiddleware"; import { getTableList, getColumnList, updateColumnSettings, updateAllColumnSettings, getTableLabels, getColumnLabels, updateColumnWebType, updateColumnInputType, updateTableLabel, getTableData, getTableRecord, // ๐Ÿ†• ๋‹จ์ผ ๋ ˆ์ฝ”๋“œ ์กฐํšŒ addTableData, editTableData, deleteTableData, getTableSchema, checkTableExists, getColumnWebTypes, checkDatabaseConnection, createLogTable, getLogConfig, getLogData, toggleLogTable, } from "../controllers/tableManagementController"; const router = express.Router(); // ๋ชจ๋“  ๋ผ์šฐํŠธ์— ์ธ์ฆ ๋ฏธ๋“ค์›จ์–ด ์ ์šฉ router.use(authenticateToken); /** * ํ…Œ์ด๋ธ” ๋ชฉ๋ก ์กฐํšŒ * GET /api/table-management/tables */ router.get("/tables", getTableList); /** * ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ ์ •๋ณด ์กฐํšŒ * GET /api/table-management/tables/:tableName/columns */ router.get("/tables/:tableName/columns", getColumnList); /** * ํ…Œ์ด๋ธ” ๋ผ๋ฒจ ์„ค์ • * PUT /api/table-management/tables/:tableName/label */ router.put("/tables/:tableName/label", updateTableLabel); /** * ๊ฐœ๋ณ„ ์ปฌ๋Ÿผ ์„ค์ • ์—…๋ฐ์ดํŠธ * POST /api/table-management/tables/:tableName/columns/:columnName/settings */ router.post( "/tables/:tableName/columns/:columnName/settings", updateColumnSettings ); /** * ์ „์ฒด ์ปฌ๋Ÿผ ์„ค์ • ์ผ๊ด„ ์—…๋ฐ์ดํŠธ * POST /api/table-management/tables/:tableName/columns/settings */ router.post("/tables/:tableName/columns/settings", updateAllColumnSettings); /** * ํ…Œ์ด๋ธ” ๋ผ๋ฒจ ์ •๋ณด ์กฐํšŒ * GET /api/table-management/tables/:tableName/labels */ router.get("/tables/:tableName/labels", getTableLabels); /** * ์ปฌ๋Ÿผ ๋ผ๋ฒจ ์ •๋ณด ์กฐํšŒ * GET /api/table-management/tables/:tableName/columns/:columnName/labels */ router.get("/tables/:tableName/columns/:columnName/labels", getColumnLabels); /** * ์ปฌ๋Ÿผ ์›น ํƒ€์ž… ์„ค์ • (๋ ˆ๊ฑฐ์‹œ ์ง€์›) * PUT /api/table-management/tables/:tableName/columns/:columnName/web-type */ router.put( "/tables/:tableName/columns/:columnName/web-type", updateColumnWebType ); /** * ์ปฌ๋Ÿผ ์ž…๋ ฅ ํƒ€์ž… ์„ค์ • (์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ) * PUT /api/table-management/tables/:tableName/columns/:columnName/input-type */ router.put( "/tables/:tableName/columns/:columnName/input-type", updateColumnInputType ); /** * ๊ฐœ๋ณ„ ์ปฌ๋Ÿผ ์„ค์ • ์—…๋ฐ์ดํŠธ (PUT ๋ฐฉ์‹) * PUT /api/table-management/tables/:tableName/columns/:columnName */ router.put("/tables/:tableName/columns/:columnName", updateColumnSettings); /** * ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ ์„ค์ • ์ผ๊ด„ ์—…๋ฐ์ดํŠธ * PUT /api/table-management/tables/:tableName/columns/batch */ router.put("/tables/:tableName/columns/batch", updateAllColumnSettings); /** * ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ ์ •๋ณด ์กฐํšŒ (์ปฌ๋Ÿผ ์กด์žฌ ์—ฌ๋ถ€ ๊ฒ€์ฆ์šฉ) * GET /api/table-management/tables/:tableName/schema */ router.get("/tables/:tableName/schema", getTableSchema); /** * ํ…Œ์ด๋ธ” ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ * GET /api/table-management/tables/:tableName/exists */ router.get("/tables/:tableName/exists", checkTableExists); /** * ์ปฌ๋Ÿผ ์›นํƒ€์ž… ์ •๋ณด ์กฐํšŒ (ํ™”๋ฉด๊ด€๋ฆฌ ์—ฐ๋™์šฉ) * GET /api/table-management/tables/:tableName/web-types */ router.get("/tables/:tableName/web-types", getColumnWebTypes); /** * ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ƒํƒœ ํ™•์ธ * GET /api/table-management/health */ router.get("/health", checkDatabaseConnection); /** * ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์กฐํšŒ (ํŽ˜์ด์ง• + ๊ฒ€์ƒ‰) * POST /api/table-management/tables/:tableName/data */ router.post("/tables/:tableName/data", getTableData); /** * ๋‹จ์ผ ๋ ˆ์ฝ”๋“œ ์กฐํšŒ (์ž๋™ ์ž…๋ ฅ์šฉ) * POST /api/table-management/tables/:tableName/record */ router.post("/tables/:tableName/record", getTableRecord); /** * ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ * POST /api/table-management/tables/:tableName/add */ router.post("/tables/:tableName/add", addTableData); /** * ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์ˆ˜์ • * PUT /api/table-management/tables/:tableName/edit */ router.put("/tables/:tableName/edit", editTableData); /** * ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์‚ญ์ œ * DELETE /api/table-management/tables/:tableName/delete */ router.delete("/tables/:tableName/delete", deleteTableData); // ======================================== // ํ…Œ์ด๋ธ” ๋กœ๊ทธ ์‹œ์Šคํ…œ API // ======================================== /** * ๋กœ๊ทธ ํ…Œ์ด๋ธ” ์ƒ์„ฑ * POST /api/table-management/tables/:tableName/log */ router.post("/tables/:tableName/log", createLogTable); /** * ๋กœ๊ทธ ์„ค์ • ์กฐํšŒ * GET /api/table-management/tables/:tableName/log/config */ router.get("/tables/:tableName/log/config", getLogConfig); /** * ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์กฐํšŒ * GET /api/table-management/tables/:tableName/log */ router.get("/tables/:tableName/log", getLogData); /** * ๋กœ๊ทธ ํ…Œ์ด๋ธ” ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™” * POST /api/table-management/tables/:tableName/log/toggle */ router.post("/tables/:tableName/log/toggle", toggleLogTable); export default router;