( workos: WorkOS, orgId: string )
| 9 | * Get email addresses of org admins and owners from WorkOS. |
| 10 | */ |
| 11 | export async function getOrgAdminEmails( |
| 12 | workos: WorkOS, |
| 13 | orgId: string |
| 14 | ): Promise<string[]> { |
| 15 | const orgMemberships = await workos.userManagement.listOrganizationMemberships({ |
| 16 | organizationId: orgId, |
| 17 | }); |
| 18 | |
| 19 | const admins = orgMemberships.data.filter( |
| 20 | m => m.role?.slug === 'admin' || m.role?.slug === 'owner' |
| 21 | ); |
| 22 | |
| 23 | const emails = await Promise.all( |
| 24 | admins.map(async m => { |
| 25 | try { |
| 26 | const user = await workos.userManagement.getUser(m.userId); |
| 27 | return user.email || null; |
| 28 | } catch { |
| 29 | return null; |
| 30 | } |
| 31 | }) |
| 32 | ); |
| 33 | |
| 34 | return emails.filter((e): e is string => e !== null); |
| 35 | } |
no test coverage detected