@chayns-components/person-finder
Version:
A set of beautiful React components for developing your own applications with chayns.
49 lines • 1.38 kB
JavaScript
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