Skip to content

Commit

Permalink
Improved: The code by parallel API calls and showed toast only once f…
Browse files Browse the repository at this point in the history
…or all responses.(#339)
  • Loading branch information
priyanshee1604 committed Feb 13, 2025
1 parent d15c646 commit a68f687
Showing 1 changed file with 36 additions and 63 deletions.
99 changes: 36 additions & 63 deletions src/views/ManageFacilities.vue
Original file line number Diff line number Diff line change
Expand Up @@ -315,50 +315,20 @@
const facilitiesToAdd = this.selectedFacilities.filter((facility: any) => !memberFacilityIds.includes(facility.facilityId))
const selectedFacilityIds = this.selectedFacilities ? new Set(this.selectedFacilities.map((facility:any) => facility.facilityId)) as any : [];
const facilitiesToRemove = this.memberFacilities.filter((facility: any) => !selectedFacilityIds.has(facility.facilityId))
if(facilitiesToRemove.length > 0){
try{
const removeResponse = await FacilityService.updateFacilitiesToGroup({
"payload": {
"facilityList": facilitiesToRemove.map((facility: any) => ({
"facilityGroupId": this.facilityGroupId,
"facilityId": facility.facilityId,
"fromDate": facility.fromDate,
"thruDate": DateTime.now().toMillis()
}))
}
})
if(hasError(removeResponse)){
throw removeResponse
}
showToast(translate("Member facilities updated successfully."))
}catch(error){
showToast(translate("Failed to update some member facilities."))
}
}
if(facilitiesToAdd.length > 0){
try{
const addResponse = await FacilityService.addFacilitiesToGroup({
"payload": {
"facilityList": facilitiesToAdd.map((facility: any) => ({
"facilityGroupId": this.facilityGroupId,
"facilityId": facility.facilityId,
"sequenceNum": facility.sequenceNum
}))
}
})
if(hasError(addResponse)){
throw addResponse
}
showToast(translate("Member facilities updated successfully."))
}catch(error){
showToast(translate("Failed to update some member facilities."))
}
}
const facilitiesToRemoveList = facilitiesToRemove.map((facility: any) => ({
"facilityGroupId": this.facilityGroupId,
"facilityId": facility.facilityId,
"fromDate": facility.fromDate,
"thruDate": DateTime.now().toMillis()
}))
const facilitiesToAddList = facilitiesToAdd.map((facility: any) => ({
"facilityGroupId": this.facilityGroupId,
"facilityId": facility.facilityId,
"sequenceNum": facility.sequenceNum
}))
const facilityIdsToAdd = facilitiesToAdd ? new Set(facilitiesToAdd.map((facility:any) => facility.facilityId)) as any : [];
const existingFacilityMembers = this.selectedFacilities.filter((facility:any) => !facilityIdsToAdd.has(facility.facilityId))
const diffMemberFacilitySequencing = existingFacilityMembers.filter((facility: any) => this.memberFacilities.some((memberFacility: any) => memberFacility.facilityId === facility.facilityId && memberFacility.sequenceNum !== facility.sequenceNum))
Expand All @@ -368,28 +338,31 @@
return memberInfo;
}, {})
if(diffMemberFacilitySequencing.length > 0){
try{
const sequenceUpdateResponse = await FacilityService.updateFacilitiesToGroup({
"payload": {
"facilityList": diffMemberFacilitySequencing.map((memberFacility: any) => ({
"facilityGroupId": this.facilityGroupId,
"facilityId": memberFacility.facilityId,
"fromDate": memberFacilityDetail[memberFacility.facilityId].fromDate,
"sequenceNum": memberFacility.sequenceNum
}))
}
})
const diffMemberFacilitySequencingList = diffMemberFacilitySequencing.map((memberFacility: any) => ({
"facilityGroupId": this.facilityGroupId,
"facilityId": memberFacility.facilityId,
"fromDate": memberFacilityDetail[memberFacility.facilityId].fromDate,
"sequenceNum": memberFacility.sequenceNum
}))
if(hasError(sequenceUpdateResponse)){
throw sequenceUpdateResponse
}
showToast(translate("Member facilities updated successfully."))
}catch(error){
showToast(translate("Failed to update some member facilities."))
}
const facilitiesToUpdateList = [...facilitiesToRemoveList, ...diffMemberFacilitySequencingList]
const requestPayload = []
if(facilitiesToUpdateList.length > 0){
requestPayload.push(FacilityService.updateFacilitiesToGroup({ "payload": { "facilityList": facilitiesToUpdateList}}))
}
if (facilitiesToAddList.length > 0) {
requestPayload.push(FacilityService.addFacilitiesToGroup({ "payload": { "facilityList": facilitiesToAddList } }));
}
const responses = await Promise.allSettled(requestPayload)
if(responses.some((response: any) => response.status === 'rejected')){
showToast(translate("Failed to update some member facilities."))
} else {
showToast(translate("Member facilities updated successfully."))
}
this.isFacilityMembersModified = false;
this.router.push({ path: `/tabs/find-groups` })
},
Expand Down

0 comments on commit a68f687

Please sign in to comment.