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

Function resolveZoomChallengeSecrets

apps/sim/lib/webhooks/providers/zoom.ts:54–96  ·  view source on GitHub ↗
(
  path: string,
  requestId: string
)

Source from the content-addressed store, hash-verified

52}
53
54async function resolveZoomChallengeSecrets(
55 path: string,
56 requestId: string
57): Promise<Array<{ secretToken: string }>> {
58 const rows = await db
59 .select({
60 providerConfig: webhook.providerConfig,
61 userId: workflow.userId,
62 workspaceId: workflow.workspaceId,
63 })
64 .from(webhook)
65 .innerJoin(workflow, eq(webhook.workflowId, workflow.id))
66 .where(and(eq(webhook.path, path), eq(webhook.provider, 'zoom'), eq(webhook.isActive, true)))
67
68 const resolvedRows = await Promise.all(
69 rows.map(async (row) => {
70 const rawConfig =
71 row.providerConfig &&
72 typeof row.providerConfig === 'object' &&
73 !Array.isArray(row.providerConfig)
74 ? (row.providerConfig as Record<string, unknown>)
75 : {}
76
77 try {
78 const config = await resolveEnvVarsInObject(
79 rawConfig,
80 row.userId,
81 row.workspaceId ?? undefined
82 )
83 const secretToken = typeof config.secretToken === 'string' ? config.secretToken : ''
84 return { secretToken }
85 } catch (error) {
86 logger.warn(`[${requestId}] Failed to resolve Zoom webhook secret for challenge`, {
87 error: toError(error).message,
88 path,
89 })
90 return { secretToken: '' }
91 }
92 })
93 )
94
95 return resolvedRows.filter((row) => row.secretToken)
96}
97
98export const zoomHandler: WebhookProviderHandler = {
99 /**

Callers 1

handleChallengeFunction · 0.85

Calls 4

resolveEnvVarsInObjectFunction · 0.90
toErrorFunction · 0.90
warnMethod · 0.65
eqFunction · 0.50

Tested by

no test coverage detected