파일업로드 로직 중간저장(다듬기하면됨)

This commit is contained in:
leeheejin
2025-12-11 13:48:34 +09:00
parent d09c8e0787
commit c486a31787
4 changed files with 46 additions and 3 deletions

View File

@@ -343,6 +343,20 @@ export const uploadFiles = async (
// 🆕 레코드 모드: 해당 행의 attachments 컬럼 자동 업데이트
const isRecordMode = req.body.isRecordMode === "true" || req.body.isRecordMode === true;
// 🔍 디버깅: 레코드 모드 조건 확인
console.log("🔍 [파일 업로드] 레코드 모드 조건 확인:", {
isRecordMode,
linkedTable,
recordId,
columnName,
finalTargetObjid,
"req.body.isRecordMode": req.body.isRecordMode,
"req.body.linkedTable": req.body.linkedTable,
"req.body.recordId": req.body.recordId,
"req.body.columnName": req.body.columnName,
});
if (isRecordMode && linkedTable && recordId && columnName) {
try {
// 해당 레코드의 모든 첨부파일 조회

View File

@@ -865,6 +865,9 @@ export class DynamicFormService {
return `${key} = $${index + 1}::numeric`;
} else if (dataType === 'boolean') {
return `${key} = $${index + 1}::boolean`;
} else if (dataType === 'jsonb' || dataType === 'json') {
// 🆕 JSONB/JSON 타입은 명시적 캐스팅
return `${key} = $${index + 1}::jsonb`;
} else {
// 문자열 타입은 캐스팅 불필요
return `${key} = $${index + 1}`;
@@ -872,7 +875,17 @@ export class DynamicFormService {
})
.join(", ");
const values: any[] = Object.values(changedFields);
// 🆕 JSONB 타입 값은 JSON 문자열로 변환
const values: any[] = Object.keys(changedFields).map((key) => {
const value = changedFields[key];
const dataType = columnTypes[key];
// JSONB/JSON 타입이고 배열/객체인 경우 JSON 문자열로 변환
if ((dataType === 'jsonb' || dataType === 'json') && (Array.isArray(value) || (typeof value === 'object' && value !== null))) {
return JSON.stringify(value);
}
return value;
});
values.push(id); // WHERE 조건용 ID 추가
// 🔑 Primary Key 타입에 맞게 캐스팅