테스트용 채번규칙 API 추가: numberingRuleController에 테이블+컬럼 기반 채번규칙 조회 및 테스트 테이블에 채번규칙 저장 기능을 추가하였습니다. 이를 통해 개발 및 테스트 환경에서 채번규칙을 보다 쉽게 관리할 수 있도록 개선하였습니다.

This commit is contained in:
kjs
2026-01-21 13:54:14 +09:00
parent 4781a17b71
commit 16cb1ea1af
8 changed files with 664 additions and 5 deletions

View File

@@ -258,4 +258,67 @@ router.post("/:ruleId/reset", authenticateToken, async (req: AuthenticatedReques
}
});
// ====== 테스트용 API (menu_objid 없는 방식) ======
// [테스트] 테이블+컬럼 기반 채번규칙 조회
router.get("/test/by-column", authenticateToken, async (req: AuthenticatedRequest, res: Response) => {
const companyCode = req.user!.companyCode;
const { tableName, columnName } = req.query;
try {
if (!tableName || typeof tableName !== "string") {
return res.status(400).json({ success: false, error: "tableName is required" });
}
if (!columnName || typeof columnName !== "string") {
return res.status(400).json({ success: false, error: "columnName is required" });
}
const rule = await numberingRuleService.getNumberingRuleByColumn(
companyCode,
tableName,
columnName
);
if (!rule) {
return res.status(404).json({ success: false, error: "규칙을 찾을 수 없습니다" });
}
return res.json({ success: true, data: rule });
} catch (error: any) {
logger.error("테이블+컬럼 기반 채번규칙 조회 실패", {
error: error.message,
companyCode,
tableName,
columnName,
});
return res.status(500).json({ success: false, error: error.message });
}
});
// [테스트] 테스트 테이블에 채번규칙 저장
router.post("/test/save", authenticateToken, async (req: AuthenticatedRequest, res: Response) => {
const companyCode = req.user!.companyCode;
const userId = req.user!.userId;
const config = req.body;
try {
if (!config.ruleId || !config.ruleName) {
return res.status(400).json({ success: false, error: "ruleId and ruleName are required" });
}
if (!config.tableName || !config.columnName) {
return res.status(400).json({ success: false, error: "tableName and columnName are required" });
}
const savedRule = await numberingRuleService.saveRuleToTest(config, companyCode, userId);
return res.json({ success: true, data: savedRule });
} catch (error: any) {
logger.error("테스트 테이블에 채번규칙 저장 실패", {
error: error.message,
companyCode,
ruleId: config.ruleId,
});
return res.status(500).json({ success: false, error: error.message });
}
});
export default router;