summaryrefslogtreecommitdiff
path: root/lib/forms/services.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-07-07 01:44:45 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-07-07 01:44:45 +0000
commit90f79a7a691943a496f67f01c1e493256070e4de (patch)
tree37275fde3ae08c2bca384fbbc8eb378de7e39230 /lib/forms/services.ts
parentfbb3b7f05737f9571b04b0a8f4f15c0928de8545 (diff)
(대표님) 변경사항 20250707 10시 43분 - unstaged 변경사항 추가
Diffstat (limited to 'lib/forms/services.ts')
-rw-r--r--lib/forms/services.ts50
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 };
});