공통코드 관리 시스템 개선 완료

This commit is contained in:
2025-09-03 11:20:43 +09:00
parent 14eb0b62e7
commit 63c7b80391
12 changed files with 665 additions and 41 deletions

View File

@@ -395,4 +395,105 @@ export class CommonCodeController {
});
}
}
/**
* 카테고리 중복 검사
* GET /api/common-codes/categories/check-duplicate?field=categoryCode&value=USER_STATUS&excludeCode=OLD_CODE
*/
async checkCategoryDuplicate(req: AuthenticatedRequest, res: Response) {
try {
const { field, value, excludeCode } = req.query;
// 입력값 검증
if (!field || !value) {
return res.status(400).json({
success: false,
message: "field와 value 파라미터가 필요합니다.",
});
}
const validFields = ['categoryCode', 'categoryName', 'categoryNameEng'];
if (!validFields.includes(field as string)) {
return res.status(400).json({
success: false,
message: "field는 categoryCode, categoryName, categoryNameEng 중 하나여야 합니다.",
});
}
const result = await this.commonCodeService.checkCategoryDuplicate(
field as 'categoryCode' | 'categoryName' | 'categoryNameEng',
value as string,
excludeCode as string
);
return res.json({
success: true,
data: {
...result,
field,
value
},
message: "카테고리 중복 검사 완료",
});
} catch (error) {
logger.error("카테고리 중복 검사 실패:", error);
return res.status(500).json({
success: false,
message: "카테고리 중복 검사 중 오류가 발생했습니다.",
error: error instanceof Error ? error.message : "Unknown error",
});
}
}
/**
* 코드 중복 검사
* GET /api/common-codes/categories/:categoryCode/codes/check-duplicate?field=codeValue&value=ACTIVE&excludeCode=OLD_CODE
*/
async checkCodeDuplicate(req: AuthenticatedRequest, res: Response) {
try {
const { categoryCode } = req.params;
const { field, value, excludeCode } = req.query;
// 입력값 검증
if (!field || !value) {
return res.status(400).json({
success: false,
message: "field와 value 파라미터가 필요합니다.",
});
}
const validFields = ['codeValue', 'codeName', 'codeNameEng'];
if (!validFields.includes(field as string)) {
return res.status(400).json({
success: false,
message: "field는 codeValue, codeName, codeNameEng 중 하나여야 합니다.",
});
}
const result = await this.commonCodeService.checkCodeDuplicate(
categoryCode,
field as 'codeValue' | 'codeName' | 'codeNameEng',
value as string,
excludeCode as string
);
return res.json({
success: true,
data: {
...result,
categoryCode,
field,
value
},
message: "코드 중복 검사 완료",
});
} catch (error) {
logger.error(`코드 중복 검사 실패 (${req.params.categoryCode}):`, error);
return res.status(500).json({
success: false,
message: "코드 중복 검사 중 오류가 발생했습니다.",
error: error instanceof Error ? error.message : "Unknown error",
});
}
}
}