버튼 삭제 수정기능 구현

This commit is contained in:
kjs
2025-09-18 18:49:30 +09:00
parent 87f3959036
commit 004bf28d17
14 changed files with 1637 additions and 134 deletions

View File

@@ -99,6 +99,58 @@ export const updateFormData = async (
}
};
// 폼 데이터 부분 업데이트 (변경된 필드만)
export const updateFormDataPartial = async (
req: AuthenticatedRequest,
res: Response
): Promise<Response | void> => {
try {
const { id } = req.params;
const { companyCode, userId } = req.user as any;
const { tableName, originalData, newData } = req.body;
if (!tableName || !originalData || !newData) {
return res.status(400).json({
success: false,
message:
"필수 필드가 누락되었습니다. (tableName, originalData, newData)",
});
}
console.log("🔄 컨트롤러: 부분 업데이트 요청:", {
id,
tableName,
originalData,
newData,
});
// 메타데이터 추가
const newDataWithMeta = {
...newData,
updated_by: userId,
};
const result = await dynamicFormService.updateFormDataPartial(
parseInt(id),
tableName,
originalData,
newDataWithMeta
);
res.json({
success: true,
data: result,
message: "데이터가 성공적으로 업데이트되었습니다.",
});
} catch (error: any) {
console.error("❌ 부분 업데이트 실패:", error);
res.status(500).json({
success: false,
message: error.message || "부분 업데이트에 실패했습니다.",
});
}
};
// 폼 데이터 삭제
export const deleteFormData = async (
req: AuthenticatedRequest,
@@ -131,6 +183,41 @@ export const deleteFormData = async (
}
};
// 테이블의 기본키 조회
export const getTablePrimaryKeys = async (
req: AuthenticatedRequest,
res: Response
): Promise<Response | void> => {
try {
const { tableName } = req.params;
if (!tableName) {
return res.status(400).json({
success: false,
message: "테이블명이 누락되었습니다.",
});
}
console.log(`🔑 테이블 ${tableName}의 기본키 조회 요청`);
const primaryKeys = await dynamicFormService.getTablePrimaryKeys(tableName);
console.log(`✅ 테이블 ${tableName}의 기본키:`, primaryKeys);
res.json({
success: true,
data: primaryKeys,
message: "기본키 조회가 완료되었습니다.",
});
} catch (error: any) {
console.error("❌ 기본키 조회 실패:", error);
res.status(500).json({
success: false,
message: error.message || "기본키 조회에 실패했습니다.",
});
}
};
// 단일 폼 데이터 조회
export const getFormData = async (
req: AuthenticatedRequest,