From 2650b7c0bb0ea12b68a58c0439f72d61df04b2f1 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Fri, 25 Jul 2025 07:51:15 +0000 Subject: (대표님) 정기평가 대상, 미들웨어 수정, nextauth 토큰 처리 개선, GTC 등 (최겸) 기술영업 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../add-basic-contract-template-dialog.tsx | 30 +++++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) (limited to 'lib/basic-contract/template/add-basic-contract-template-dialog.tsx') diff --git a/lib/basic-contract/template/add-basic-contract-template-dialog.tsx b/lib/basic-contract/template/add-basic-contract-template-dialog.tsx index fd1bd333..6b6ab105 100644 --- a/lib/basic-contract/template/add-basic-contract-template-dialog.tsx +++ b/lib/basic-contract/template/add-basic-contract-template-dialog.tsx @@ -219,16 +219,21 @@ export function AddTemplateDialog() { setIsLoading(true); try { let uploadResult = null; - + + // 📝 파일 업로드가 필요한 경우에만 업로드 진행 if (formData.file) { const fileId = uuidv4(); uploadResult = await uploadFileInChunks(formData.file, fileId); - + if (!uploadResult?.success) { throw new Error("파일 업로드에 실패했습니다."); } } - + + // 📝 General GTC이고 파일이 없는 경우와 다른 경우 구분 처리 + const isGeneralGTC = formData.templateName === "General GTC"; + const hasFile = uploadResult && uploadResult.success; + const saveResponse = await fetch('/api/upload/basicContract/complete', { method: 'POST', headers: { 'Content-Type': 'application/json' }, @@ -245,17 +250,28 @@ export function AddTemplateDialog() { sysApplicable: formData.sysApplicable, infraApplicable: formData.infraApplicable, status: "ACTIVE", - fileName: uploadResult?.fileName || `${formData.templateName}_v1.docx`, - filePath: uploadResult?.filePath || "", + + // 📝 파일이 있는 경우에만 fileName과 filePath 전송 + ...(hasFile && { + fileName: uploadResult.fileName, + filePath: uploadResult.filePath, + }), + + // 📝 파일이 없는 경우 null 전송 (스키마가 nullable이어야 함) + ...(!hasFile && { + fileName: null, + filePath: null, + }) }), next: { tags: ["basic-contract-templates"] }, }); - + const saveResult = await saveResponse.json(); if (!saveResult.success) { + console.log(saveResult.error); throw new Error(saveResult.error || "템플릿 정보 저장에 실패했습니다."); } - + toast.success('템플릿이 성공적으로 추가되었습니다.'); form.reset(); setSelectedFile(null); -- cgit v1.2.3