diff options
Diffstat (limited to 'lib/vendor-document/service.ts')
| -rw-r--r-- | lib/vendor-document/service.ts | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/lib/vendor-document/service.ts b/lib/vendor-document/service.ts index a0ae6f76..bf2b0b7a 100644 --- a/lib/vendor-document/service.ts +++ b/lib/vendor-document/service.ts @@ -9,10 +9,9 @@ import { filterColumns } from "@/lib/filter-columns"; import { getErrorMessage } from "@/lib/handle-error"; import { asc, desc, ilike, inArray, and, gte, lte, not, or , isNotNull, isNull} from "drizzle-orm"; import { countVendorDocuments, selectVendorDocuments } from "./repository" -import path from "path"; -import fs from "fs/promises"; -import { v4 as uuidv4 } from "uuid" import { contractItems } from "@/db/schema" +import { saveFile } from "../file-stroage" +import path from "path" /** * 특정 vendorId에 속한 문서 목록 조회 @@ -340,23 +339,17 @@ export async function createRevisionAction(formData: FormData) { let attachmentRecord: typeof documentAttachments.$inferSelect | null = null; if (file && file.size > 0) { - const originalName = customFileName - const ext = path.extname(originalName) - const uniqueName = uuidv4() + ext - const baseDir = path.join(process.cwd(), "public", "documents") - const savePath = path.join(baseDir, uniqueName) - - const arrayBuffer = await file.arrayBuffer() - const buffer = Buffer.from(arrayBuffer) - await fs.writeFile(savePath, buffer) + + const ext = path.extname(customFileName) + const saveResult = await saveFile({file,directory:`documents`, originalName:customFileName}) // 파일 정보를 documentAttachments 테이블에 저장 const result = await tx .insert(documentAttachments) .values({ revisionId, - fileName: originalName, - filePath: "/documents/" + uniqueName, + fileName: customFileName, + filePath: saveResult.publicPath!, fileSize: file.size, fileType: ext.replace('.', '').toLowerCase(), updatedAt: new Date(), |
