MCPcopy Index your code
hub / github.com/simstudioai/sim / normalizeVantaVendor

Function normalizeVantaVendor

apps/sim/tools/vanta/utils.ts:610–668  ·  view source on GitHub ↗
(resource: JsonRecord)

Source from the content-addressed store, hash-verified

608}
609
610export function normalizeVantaVendor(resource: JsonRecord): VantaVendor {
611 const authDetails = isRecordLike(resource.authDetails)
612 ? {
613 method: getString(resource.authDetails.method),
614 passwordMFA: getBoolean(resource.authDetails.passwordMFA),
615 passwordMinimumLength: getNumber(resource.authDetails.passwordMinimumLength),
616 passwordRequiresNumber: getBoolean(resource.authDetails.passwordRequiresNumber),
617 passwordRequiresSymbol: getBoolean(resource.authDetails.passwordRequiresSymbol),
618 }
619 : null
620 const contractAmount = isRecordLike(resource.contractAmount)
621 ? {
622 amount: getNumber(resource.contractAmount.amount),
623 currency: getString(resource.contractAmount.currency),
624 }
625 : null
626 const latestDecision = isRecordLike(resource.latestDecision)
627 ? {
628 status: getString(resource.latestDecision.status),
629 lastUpdatedAt: getString(resource.latestDecision.lastUpdatedAt),
630 }
631 : null
632 const procurementRequest = isRecordLike(resource.linkedTaskTrackerTaskProcurementRequest)
633 ? {
634 url: getString(resource.linkedTaskTrackerTaskProcurementRequest.url),
635 service: getString(resource.linkedTaskTrackerTaskProcurementRequest.service),
636 }
637 : null
638
639 return {
640 id: getString(resource.id),
641 name: getString(resource.name),
642 status: getString(resource.status),
643 websiteUrl: getString(resource.websiteUrl),
644 category: isRecordLike(resource.category) ? getString(resource.category.displayName) : null,
645 servicesProvided: getString(resource.servicesProvided),
646 additionalNotes: getString(resource.additionalNotes),
647 accountManagerName: getString(resource.accountManagerName),
648 accountManagerEmail: getString(resource.accountManagerEmail),
649 securityOwnerUserId: getString(resource.securityOwnerUserId),
650 businessOwnerUserId: getString(resource.businessOwnerUserId),
651 inherentRiskLevel: getString(resource.inherentRiskLevel),
652 residualRiskLevel: getString(resource.residualRiskLevel),
653 isRiskAutoScored: getBoolean(resource.isRiskAutoScored),
654 isVisibleToAuditors: getBoolean(resource.isVisibleToAuditors),
655 riskAttributeIds: getStringArray(resource.riskAttributeIds),
656 vendorHeadquarters: getString(resource.vendorHeadquarters),
657 contractStartDate: getString(resource.contractStartDate),
658 contractRenewalDate: getString(resource.contractRenewalDate),
659 contractTerminationDate: getString(resource.contractTerminationDate),
660 contractAmount,
661 nextSecurityReviewDueDate: getString(resource.nextSecurityReviewDueDate),
662 lastSecurityReviewCompletionDate: getString(resource.lastSecurityReviewCompletionDate),
663 authDetails,
664 customFields: normalizeVantaCustomFields(resource.customFields),
665 latestDecision,
666 linkedTaskTrackerTaskProcurementRequest: procurementRequest,
667 }

Callers 1

buildVantaOutputFunction · 0.90

Calls 6

isRecordLikeFunction · 0.90
getStringFunction · 0.70
getBooleanFunction · 0.70
getNumberFunction · 0.70
getStringArrayFunction · 0.70

Tested by

no test coverage detected