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

Function createPendingInvitation

apps/sim/lib/invitations/send.ts:51–88  ·  view source on GitHub ↗
(
  input: CreatePendingInvitationInput
)

Source from the content-addressed store, hash-verified

49}
50
51export async function createPendingInvitation(
52 input: CreatePendingInvitationInput
53): Promise<CreatePendingInvitationResult> {
54 const invitationId = generateId()
55 const token = generateId()
56 const expiresAt = input.expiresAt ?? computeInvitationExpiry()
57 const now = new Date()
58
59 await db.transaction(async (tx) => {
60 await tx.insert(invitation).values({
61 id: invitationId,
62 kind: input.kind,
63 email: normalizeEmail(input.email),
64 inviterId: input.inviterId,
65 organizationId: input.organizationId,
66 membershipIntent: input.membershipIntent ?? 'internal',
67 role: input.role,
68 status: 'pending',
69 token,
70 expiresAt,
71 createdAt: now,
72 updatedAt: now,
73 })
74
75 for (const grant of input.grants) {
76 await tx.insert(invitationWorkspaceGrant).values({
77 id: generateId(),
78 invitationId,
79 workspaceId: grant.workspaceId,
80 permission: grant.permission,
81 createdAt: now,
82 updatedAt: now,
83 })
84 }
85 })
86
87 return { invitationId, token, expiresAt }
88}
89
90async function countPendingInvitationsForOrganization(organizationId: string): Promise<number> {
91 const [row] = await db

Callers 3

route.tsFile · 0.90
route.tsFile · 0.90

Calls 3

generateIdFunction · 0.90
computeInvitationExpiryFunction · 0.90
normalizeEmailFunction · 0.90

Tested by

no test coverage detected