diff options
Diffstat (limited to 'lib/vendor-document-list/dolce-upload-service.ts')
| -rw-r--r-- | lib/vendor-document-list/dolce-upload-service.ts | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/lib/vendor-document-list/dolce-upload-service.ts b/lib/vendor-document-list/dolce-upload-service.ts index 8c66f234..41b9c2fa 100644 --- a/lib/vendor-document-list/dolce-upload-service.ts +++ b/lib/vendor-document-list/dolce-upload-service.ts @@ -318,6 +318,13 @@ class DOLCEUploadService { } | null> { const { users, vendors } = await import("@/db/schema") + // userId를 숫자로 변환하고 유효성 검증 + const userIdNum = Number(userId) + if (isNaN(userIdNum) || userIdNum <= 0) { + console.error(`Invalid userId: ${userId} (converted to NaN or invalid number)`) + throw new Error(`Invalid user ID: ${userId}`) + } + const [result] = await db .select({ userId: users.id, @@ -327,7 +334,7 @@ class DOLCEUploadService { }) .from(users) .innerJoin(vendors, eq(users.companyId, vendors.id)) - .where(eq(users.id, Number(userId))) + .where(eq(users.id, userIdNum)) .limit(1) if (!result) { @@ -446,10 +453,14 @@ class DOLCEUploadService { .from(documentAttachments) .where(eq(documentAttachments.revisionId, revision.id)) - revisionsWithAttachments.push({ + // serialNo를 숫자로 변환하여 RevisionWithAttachments 타입에 맞춤 + const convertedRevision: RevisionWithAttachments = { ...revision, + serialNo: typeof revision.serialNo === 'string' ? Number(revision.serialNo) : revision.serialNo, attachments - }) + } + + revisionsWithAttachments.push(convertedRevision) } return revisionsWithAttachments @@ -646,9 +657,15 @@ class DOLCEUploadService { try { const endpoint = `${this.BASE_URL}/Services/VDCSWebService.svc/DetailDwgReceiptMgmtEdit` + // UserID를 숫자로 변환하고 유효성 검증 + const userIdNum = Number(userId) + if (isNaN(userIdNum) || userIdNum <= 0) { + throw new Error(`Invalid UserID for DOLCE API: ${userId} (must be a positive integer)`) + } + const requestBody = { DwgList: dwgList, - UserID: userId, + UserID: userIdNum, // 정수형으로 변환 UserNM: userName, VENDORCODE: vendorCode, EMAIL: email @@ -691,9 +708,15 @@ class DOLCEUploadService { try { const endpoint = `${this.BASE_URL}/Services/VDCSWebService.svc/MatchBatchFileDwgEdit` + // UserID를 숫자로 변환하고 유효성 검증 + const userIdNum = Number(userId) + if (isNaN(userIdNum) || userIdNum <= 0) { + throw new Error(`Invalid UserID for DOLCE API: ${userId} (must be a positive integer)`) + } + const requestBody = { mappingSaveLists: mappingList, - UserID: userId + UserID: userIdNum // 정수형으로 변환 } console.log('Uploading file mapping to DOLCE:', JSON.stringify(requestBody, null, 2)) |
