diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-07 01:44:45 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-07 01:44:45 +0000 |
| commit | 90f79a7a691943a496f67f01c1e493256070e4de (patch) | |
| tree | 37275fde3ae08c2bca384fbbc8eb378de7e39230 /lib/forms/services.ts | |
| parent | fbb3b7f05737f9571b04b0a8f4f15c0928de8545 (diff) | |
(대표님) 변경사항 20250707 10시 43분 - unstaged 변경사항 추가
Diffstat (limited to 'lib/forms/services.ts')
| -rw-r--r-- | lib/forms/services.ts | 50 |
1 files changed, 9 insertions, 41 deletions
diff --git a/lib/forms/services.ts b/lib/forms/services.ts index 0558e83f..7c1219d2 100644 --- a/lib/forms/services.ts +++ b/lib/forms/services.ts @@ -28,6 +28,7 @@ import { DataTableColumnJSON } from "@/components/form-data/form-data-table-colu import { contractItems, contracts, items, projects } from "@/db/schema"; import { getSEDPToken } from "../sedp/sedp-token"; import { decryptWithServerAction } from "@/components/drm/drmUtils"; +import { deleteFile, saveFile } from "@/lib/file-stroage"; export type FormInfo = InferSelectModel<typeof forms>; @@ -882,26 +883,11 @@ export async function uploadReportTemp( ); } if (file && file.size > 0) { - const originalName = customFileName; - const ext = path.extname(originalName); - const uniqueName = uuidv4() + ext; - const baseDir = path.join( - process.cwd(), - "public", - "vendorFormData", - packageId.toString(), - formId.toString() - ); - - const savePath = path.join(baseDir, uniqueName); - - // const arrayBuffer = await file.arrayBuffer(); - const arrayBuffer = await decryptWithServerAction(file); - const buffer = Buffer.from(arrayBuffer); - - await fs.mkdir(baseDir, { recursive: true }); - - await fs.writeFile(savePath, buffer); + + const saveResult = await saveFile({file, directory:"vendorFormData",originalName:customFileName}); + if (!saveResult.success) { + return { success: false, error: saveResult.error }; + } return db.transaction(async (tx) => { // 파일 정보를 테이블에 저장 @@ -910,8 +896,8 @@ export async function uploadReportTemp( .values({ contractItemId: packageId, formId: formId, - fileName: originalName, - filePath: `/vendorFormData/${packageId.toString()}/${formId.toString()}/${uniqueName}`, + fileName: customFileName, + filePath:saveResult.publicPath!, }) .returning(); }); @@ -927,24 +913,6 @@ export const getOrigin = async (): Promise<string> => { return origin; }; -export const getReportTempFileData = async (): Promise<{ - fileName: string; - fileType: string; - base64: string; -}> => { - const fileName = "sample_template_file.docx"; - - const tempFile = await fs.readFile( - `public/vendorFormReportSample/${fileName}` - ); - - return { - fileName, - fileType: - "application/vnd.openxmlformats-officedocument.wordprocessingml.document", - base64: tempFile.toString("base64"), - }; -}; type deleteReportTempFile = (id: number) => Promise<{ result: boolean; @@ -969,7 +937,7 @@ export const deleteReportTempFile: deleteReportTempFile = async (id) => { const { filePath } = targetTempFile; - await fs.unlink("public" + filePath); + await deleteFile(filePath); return { result: true }; }); |
