diff --git a/tabs/src/data/provider.js b/tabs/src/data/provider.js index 921eaff..cfef926 100644 --- a/tabs/src/data/provider.js +++ b/tabs/src/data/provider.js @@ -19,10 +19,26 @@ function wrapError(err, message) { } async function postUserGroup(groupId, userId) { - groupId && - (await apiPost('/groups/' + groupId + '/members/$ref', { - '@odata.id': constants.DIRECTORY_OBJECTS_PATH + userId, - })); + if (groupId) { + const apiPath = `/groups/${groupId}/members/$ref`; + try { + await apiPost(apiPath, { + '@odata.id': constants.DIRECTORY_OBJECTS_PATH + userId, + }); + } catch (err) { + logInfo( + `An error has occured when adding userId ${userId} to group ${groupId}. This might be caused by the fact that the user is already member of the group`, + apiPath, + { + userId: userId, + groupId: groupId, + error: err, + }, + 'postUserGroup', + ); + throw err; + } + } } async function deleteUserGroup(groupId, userId) { diff --git a/tabs/src/data/providerHelper.js b/tabs/src/data/providerHelper.js index c90b5f2..50a9479 100644 --- a/tabs/src/data/providerHelper.js +++ b/tabs/src/data/providerHelper.js @@ -34,14 +34,19 @@ export function buildTeamsURLs(user, mappings, config) { (user.OtherMemberships && user.OtherMemberships.includes(m.Membership)), ) .forEach((mapping) => { - teamURLs[mapping.O365GroupId] = { url: mapping.TeamURL, name: mapping.Membership }; + teamURLs[mapping.Membership] = { + url: mapping.TeamURL, + name: mapping.Membership, + groupId: mapping.O365GroupId, + }; }); - if (user.NFP && !teamURLs[config.MainEionetGroupId]) { + if (user.NFP) { const mainMapping = mappings.find((m) => m.O365GroupId === config.MainEionetGroupId); teamURLs[config.MainEionetGroupId] = { url: mainMapping.TeamURL, - mainMapping: mainMapping.Membership, + name: 'Eionet', + groupId: config.MainEionetGroupId, }; }