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

Function listUsers

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

Source from the content-addressed store, hash-verified

258 externalId === null ? [] : subjects.filter((subject) => subject.externalId === externalId);
259
260export const listUsers = (
261 admin: ExecutorAdmin,
262 options: AdminUsersListOptions,
263 directory?: AdminIdentityDirectory | AdminUserDirectory,
264): Effect.Effect<typeof AdminUsersResponse.Type, AdminUsersError> =>
265 Effect.gen(function* () {
266 const dir = asDirectory(directory);
267 const wanted =
268 options.email === undefined ? undefined : yield* resolveEmailFilter(dir, options.email);
269 const all = yield* admin.listSubjects(options).pipe(Effect.mapError(readFailed("users")));
270 const subjects = wanted === undefined ? all : filterToId(all, wanted);
271 // One directory read for the page that was actually returned, joined in
272 // memory — never a lookup per user.
273 const identities = yield* resolveIdentities(
274 dir.identities,
275 subjects.map((subject) => subject.externalId),
276 );
277 return { users: subjects.map((subject) => toUser(subject, identities)) };
278 });
279
280export const listUsersWithConnections = (
281 admin: ExecutorAdmin,

Callers 2

stubProviderFunction · 0.90

Calls 6

asDirectoryFunction · 0.85
resolveEmailFilterFunction · 0.85
readFailedFunction · 0.85
filterToIdFunction · 0.85
resolveIdentitiesFunction · 0.85
toUserFunction · 0.85

Tested by 1

stubProviderFunction · 0.72