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

Function processCredentialDraft

apps/sim/lib/credentials/draft-processor.ts:23–70  ·  view source on GitHub ↗
(params: ProcessCredentialDraftParams)

Source from the content-addressed store, hash-verified

21 * Used by Better Auth's `account.create.after` hook and custom OAuth flows (Shopify, Trello).
22 */
23export async function processCredentialDraft(params: ProcessCredentialDraftParams): Promise<void> {
24 const { userId, providerId, accountId } = params
25
26 const [draft] = await db
27 .select()
28 .from(schema.pendingCredentialDraft)
29 .where(
30 and(
31 eq(schema.pendingCredentialDraft.userId, userId),
32 eq(schema.pendingCredentialDraft.providerId, providerId),
33 sql`${schema.pendingCredentialDraft.expiresAt} > NOW()`
34 )
35 )
36 .limit(1)
37
38 if (!draft) return
39
40 const now = new Date()
41
42 if (draft.credentialId) {
43 await handleReconnectCredential({
44 draft,
45 newAccountId: accountId,
46 workspaceId: draft.workspaceId,
47 userId,
48 now,
49 })
50 } else {
51 await handleCreateCredentialFromDraft({
52 draft,
53 accountId,
54 providerId,
55 userId,
56 now,
57 })
58 }
59
60 await db
61 .delete(schema.pendingCredentialDraft)
62 .where(eq(schema.pendingCredentialDraft.id, draft.id))
63
64 logger.info('Processed credential draft', {
65 draftId: draft.id,
66 userId,
67 providerId,
68 isReconnect: Boolean(draft.credentialId),
69 })
70}

Callers 3

auth.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90

Calls 5

infoMethod · 0.80
deleteMethod · 0.65
eqFunction · 0.50

Tested by

no test coverage detected