UNPKG

@chayns-components/person-finder

Version:

A set of beautiful React components for developing your own applications with chayns.

49 lines 1.38 kB
import { getAccessToken, getLanguage, getSite, getUser } from 'chayns-api'; import { UacServiceClient } from '@chayns/uac-service'; import { PersonFinderFilterTypes } from '../types/personFinder'; export const client = new UacServiceClient({ getToken: async () => (await getAccessToken()).accessToken || '', getDefaultSiteId: () => getSite().id, getDefaultPersonId: () => getUser()?.personId || '', getLanguage: () => getLanguage().active }); export const getUACGroups = async () => { const result = await client.getUserGroups({ countUsers: true }); return result.map(({ id, showName, isSystemGroup }) => ({ id, name: showName, isSystemGroup })); }; export const getUsersByGroups = async uacFilter => { const groupResults = await Promise.all(uacFilter.map(async ({ groupId, siteId }) => { const users = await client.getGroupMembers({ groupId, siteId: siteId ?? getSite().id }); return users.map(({ personId, firstname, lastname }) => ({ id: personId, firstName: firstname, lastName: lastname, type: PersonFinderFilterTypes.PERSON, commonSites: 0, isVerified: false })); })); const unique = groupResults.flat().reduce((map, user) => map.set(user.id, user), new Map()); return [...unique.values()]; }; //# sourceMappingURL=uac.js.map