From 3f32047eb5ca8311d663e0ae126f12676792d04e Mon Sep 17 00:00:00 2001 From: laxman h Date: Wed, 22 Apr 2026 08:48:51 +0530 Subject: [PATCH] jobtitle overide on desigantion in the create workflow is removed to make it compativble with exsting schema --- src/services/user.service.ts | 44 +++++++++++++------------- src/services/userEnrichment.service.ts | 7 ++-- src/services/workflow.service.ts | 8 ++--- 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/services/user.service.ts b/src/services/user.service.ts index dd301ad..fb34429 100644 --- a/src/services/user.service.ts +++ b/src/services/user.service.ts @@ -432,14 +432,14 @@ export class UserService { updatedAt: new Date() }; - if (oktaUserData.userId) updateData.oktaSub = oktaUserData.userId; - if (oktaUserData.firstName) updateData.firstName = oktaUserData.firstName; - if (oktaUserData.lastName) updateData.lastName = oktaUserData.lastName; - if (oktaUserData.displayName) updateData.displayName = oktaUserData.displayName; - if (oktaUserData.department) updateData.department = oktaUserData.department; - if (oktaUserData.phone) updateData.phone = oktaUserData.phone; - if (oktaUserData.designation) updateData.designation = oktaUserData.designation; - if (oktaUserData.employeeId) updateData.employeeId = oktaUserData.employeeId; + if (oktaUserData.userId) updateData.oktaSub = oktaUserData.userId.substring(0, 100); + if (oktaUserData.firstName) updateData.firstName = oktaUserData.firstName.substring(0, 100); + if (oktaUserData.lastName) updateData.lastName = oktaUserData.lastName.substring(0, 100); + if (oktaUserData.displayName) updateData.displayName = oktaUserData.displayName.substring(0, 200); + if (oktaUserData.department) updateData.department = oktaUserData.department.substring(0, 100); + if (oktaUserData.phone) updateData.phone = oktaUserData.phone.substring(0, 20); + if (oktaUserData.designation) updateData.designation = oktaUserData.designation.substring(0, 100); + if (oktaUserData.employeeId) updateData.employeeId = oktaUserData.employeeId.substring(0, 50); await user.update(updateData); return user; @@ -451,15 +451,15 @@ export class UserService { if (oktaUser) { // Found in Okta - create with Okta data user = await UserModel.create({ - oktaSub: oktaUser.id, + oktaSub: oktaUser.id.substring(0, 100), email, employeeId: null, - firstName: oktaUser.profile.firstName || null, - lastName: oktaUser.profile.lastName || null, - displayName: oktaUser.profile.displayName || `${oktaUser.profile.firstName || ''} ${oktaUser.profile.lastName || ''}`.trim() || email.split('@')[0], - department: oktaUser.profile.department || null, + firstName: oktaUser.profile.firstName ? oktaUser.profile.firstName.substring(0, 100) : null, + lastName: oktaUser.profile.lastName ? oktaUser.profile.lastName.substring(0, 100) : null, + displayName: (oktaUser.profile.displayName || `${oktaUser.profile.firstName || ''} ${oktaUser.profile.lastName || ''}`.trim() || email.split('@')[0]).substring(0, 200), + department: oktaUser.profile.department ? oktaUser.profile.department.substring(0, 100) : null, designation: null, - phone: oktaUser.profile.mobilePhone || null, + phone: oktaUser.profile.mobilePhone ? oktaUser.profile.mobilePhone.substring(0, 20) : null, isActive: oktaUser.status === 'ACTIVE', role: 'USER', lastLogin: undefined, @@ -475,16 +475,16 @@ export class UserService { // Create new user with provided data user = await UserModel.create({ - oktaSub: oktaUserData.userId, + oktaSub: oktaUserData.userId ? oktaUserData.userId.substring(0, 100) : null as any, email, - employeeId: oktaUserData.employeeId || null, - firstName: oktaUserData.firstName || null, - lastName: oktaUserData.lastName || null, - displayName: oktaUserData.displayName || email.split('@')[0], - department: oktaUserData.department || null, - designation: oktaUserData.designation || null, + employeeId: oktaUserData.employeeId ? oktaUserData.employeeId.substring(0, 50) : null, + firstName: oktaUserData.firstName ? oktaUserData.firstName.substring(0, 100) : null, + lastName: oktaUserData.lastName ? oktaUserData.lastName.substring(0, 100) : null, + displayName: (oktaUserData.displayName || email.split('@')[0]).substring(0, 200), + department: oktaUserData.department ? oktaUserData.department.substring(0, 100) : null, + designation: oktaUserData.designation ? oktaUserData.designation.substring(0, 100) : null, jobTitle: oktaUserData.jobTitle || oktaUserData.designation || null, - phone: oktaUserData.phone || oktaUserData.mobilePhone || null, + phone: (oktaUserData.phone || oktaUserData.mobilePhone) ? (oktaUserData.phone || oktaUserData.mobilePhone)!.substring(0, 20) : null, isActive: true, role: 'USER', lastLogin: undefined, diff --git a/src/services/userEnrichment.service.ts b/src/services/userEnrichment.service.ts index 6029057..944a527 100644 --- a/src/services/userEnrichment.service.ts +++ b/src/services/userEnrichment.service.ts @@ -107,12 +107,15 @@ export async function enrichApprovalLevels( ? level.isFinalApprover : (i === approvalLevels.length - 1); + // Truncate level name if it exceeds 100 characters (database limit) + const finalLevelName = levelName ? levelName.substring(0, 100) : `Level ${i + 1} Approval`; + enriched.push({ levelNumber: level.levelNumber || (i + 1), - levelName, + levelName: finalLevelName, approverId: userId, approverEmail: email, - approverName: displayName, + approverName: displayName.substring(0, 200), tatHours: level.tatHours, isFinalApprover, }); diff --git a/src/services/workflow.service.ts b/src/services/workflow.service.ts index a69f0c6..b48ae28 100644 --- a/src/services/workflow.service.ts +++ b/src/services/workflow.service.ts @@ -2478,10 +2478,10 @@ export class WorkflowService { await ApprovalLevel.create({ requestId: workflow.requestId, levelNumber: levelData.levelNumber, - levelName: levelData.levelName, + levelName: levelData.levelName ? levelData.levelName.substring(0, 100) : undefined, approverId: levelData.approverId, approverEmail: levelData.approverEmail, - approverName: levelData.approverName, + approverName: levelData.approverName ? levelData.approverName.substring(0, 200) : '', tatHours: levelData.tatHours, // tatDays is auto-calculated by database as a generated column status: ApprovalStatus.PENDING, @@ -2526,7 +2526,7 @@ export class WorkflowService { requestId: workflow.requestId, userId: participantData.userId, userEmail: participantData.userEmail, - userName: participantData.userName, + userName: participantData.userName ? participantData.userName.substring(0, 200) : '', participantType: (participantData.participantType as unknown as ParticipantType), canComment: participantData.canComment ?? true, canViewDocuments: participantData.canViewDocuments ?? true, @@ -2559,7 +2559,7 @@ export class WorkflowService { details: isDraftRequested ? `Draft request "${workflowData.title}" created by ${initiatorName}` : `Initial request submitted for ${workflowData.title} by ${initiatorName}`, - ipAddress: requestMetadata?.ipAddress || undefined, + ipAddress: requestMetadata?.ipAddress ? requestMetadata.ipAddress.substring(0, 100) : undefined, userAgent: requestMetadata?.userAgent || undefined });