Skip to content

Commit

Permalink
Improved: logic for api call for facility association (#64)
Browse files Browse the repository at this point in the history
  • Loading branch information
amansinghbais committed Dec 27, 2023
1 parent 9468b85 commit 6ef30d1
Showing 1 changed file with 9 additions and 24 deletions.
33 changes: 9 additions & 24 deletions src/services/UserService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,7 @@ const finishSetup = async (payload: any): Promise <any> => {

if (payload.facilities.length > 0) {
const selectedFacilityIds = new Set(payload.facilities.map((facility: any) => facility.facilityId));
let facilitiesToAdd = payload.facilities.filter((facility: any) => !selectedUser.facilities?.some((fac: any) => fac.facilityId === facility.facilityId));
const facilitiesToAdd = payload.facilities.filter((facility: any) => !selectedUser.facilities?.some((fac: any) => fac.facilityId === facility.facilityId));
const facilitiestoDelete = selectedUser.facilities?.filter((facility: any) => !selectedFacilityIds.has(facility.facilityId));

//This is ensure that party have required role before associating it in FacilityParty. Because below logic is executing in parallel.
Expand Down Expand Up @@ -590,9 +590,8 @@ const finishSetup = async (payload: any): Promise <any> => {
});

if(selectedUser.partyTypeId === "PARTY_GROUP") {
if (!facilitiesToAdd.length && !facilitiestoDelete.length) {
facilitiesToAdd = selectedUser.facilities
}
// Considering facility login can only be associated with only one facility.
const facilityId = facilitiesToAdd.length ? facilitiesToAdd[0].facilityId : selectedUser.facilityId

//Create role type if not exists. This is required for associating facility login user to facility.
if (!await UserService.isRoleTypeExists("FAC_LOGIN")) {
Expand All @@ -604,26 +603,12 @@ const finishSetup = async (payload: any): Promise <any> => {
throw resp.data;
}
}

facilitiestoDelete?.map((facility: any) => {
const facilityLogin = selectedUser.facilities.find((selectedFacility: any) => selectedFacility.facilityId === facility.facilityId && selectedFacility.roleTypeId === 'FAC_LOGIN')

promises.push(removePartyFromFacility({
partyId: partyId,
facilityId: facility.facilityId,
roleTypeId: "FAC_LOGIN",
fromDate: facilityLogin.fromDate,
thruDate: DateTime.now().toMillis()
}));
});

facilitiesToAdd?.map((facility: any) => {
promises.push(addPartyToFacility({
"partyId": partyId,
"facilityId": facility.facilityId,
"roleTypeId": "FAC_LOGIN"
}));
});

promises.push(addPartyToFacility({
"partyId": partyId,
"facilityId": facilityId,
"roleTypeId": "FAC_LOGIN"
}));
}
}

Expand Down

0 comments on commit 6ef30d1

Please sign in to comment.