MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / listUsers

Function listUsers

packages/core/api/src/admin/reads.ts:295–315  ·  view source on GitHub ↗
(
  admin: ExecutorAdmin,
  options: AdminUsersListOptions,
  directory?: AdminIdentityDirectory | AdminUserDirectory,
)

Source from the content-addressed store, hash-verified

293 });
294
295export const listUsers = (
296 admin: ExecutorAdmin,
297 options: AdminUsersListOptions,
298 directory?: AdminIdentityDirectory | AdminUserDirectory,
299): Effect.Effect<typeof AdminUsersResponse.Type, AdminUsersError> =>
300 Effect.gen(function* () {
301 const dir = asDirectory(directory);
302 const subjects =
303 options.email === undefined
304 ? yield* admin.listSubjects(options).pipe(Effect.mapError(readFailed("users")))
305 : yield* selectByEmail(dir, options.email, options, (externalId) =>
306 admin.getSubject(externalId).pipe(Effect.mapError(readFailed("users"))),
307 );
308 // One directory read for the page that was actually returned, joined in
309 // memory — never a lookup per user.
310 const identities = yield* resolveIdentities(
311 dir.identities,
312 subjects.map((subject) => subject.externalId),
313 );
314 return { users: subjects.map((subject) => toUser(subject, identities)) };
315 });
316
317export const listUsersWithConnections = (
318 admin: ExecutorAdmin,

Callers 2

stubProviderFunction · 0.90

Calls 5

asDirectoryFunction · 0.85
readFailedFunction · 0.85
selectByEmailFunction · 0.85
resolveIdentitiesFunction · 0.85
toUserFunction · 0.85

Tested by 1

stubProviderFunction · 0.72