[develop | DONE | FIX ] Insert claims: avoid showing multiple errors - stop status subsciption when complete or errored

This commit is contained in:
argirok 2024-06-27 12:27:37 +03:00
parent ab3fb51ea3
commit e535934fc2
1 changed files with 13 additions and 14 deletions

View File

@ -1,5 +1,5 @@
import {Component, Input, Output, EventEmitter, ViewChild} from '@angular/core';
import {Router, ActivatedRoute} from '@angular/router';
import {Component, EventEmitter, Input, Output, ViewChild} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
import {ClaimsService} from '../../claim-utils/service/claims.service';
import {ModalLoading} from '../../../utils/modal/loading.component';
import {AlertModal} from '../../../utils/modal/alert';
@ -63,6 +63,7 @@ export class ClaimInsertComponent {
private userManagementService: UserManagementService, private _logService: LogService) {
}
subscriptions = [];
timerSubscription;
ngOnDestroy() {
this.subscriptions.forEach(subscription => {
if (subscription instanceof Subscriber) {
@ -88,13 +89,12 @@ export class ClaimInsertComponent {
})
).subscribe();
this.subscriptions.push(loadingTimerSubscription);
let timerSubscription = timer(0, 10000).pipe(
this.timerSubscription = timer(0, 10000).pipe(
map(() => {
this.getStatus(); // load data contains the http request
})
).subscribe();
this.subscriptions.push(timerSubscription);
this.subscriptions.push(this.timerSubscription);
}else{
this.claimsJob = null;
}
@ -274,12 +274,12 @@ export class ClaimInsertComponent {
}
}
this.saveLocalStorage();
let timerSubscription = timer(0, 10000).pipe(
this.timerSubscription = timer(0, 10000).pipe(
map(() => {
this.getStatus(); // load data contains the http request
})
).subscribe();
this.subscriptions.push(timerSubscription);
this.subscriptions.push(this.timerSubscription);
},
err => {
err = err && err.error?err.error:err;
@ -599,11 +599,10 @@ export class ClaimInsertComponent {
}
getStatus(){
if(this.feedRecordsJob && ! (this.feedRecordsJob.status == "COMPLETE" || this.feedRecordsJob.status == "ERROR") ) {
if(this.feedRecordsJob && ! (this.feedRecordsJob.status == "COMPLETE" || this.feedRecordsJob.status == "FAILED") ) {
this.subscriptions.push(this.claimService.getStatus(this.feedRecordsJob.id, this.properties.claimsAPIURL).subscribe(data => {
this.feedRecordsJob = data.data;
// console.log("feed", this.feedRecordsJob.status);
if (this.feedRecordsJob.status == "COMPLETE" || data.data.status == "ERROR") {
if (this.feedRecordsJob.status == "COMPLETE" || this.feedRecordsJob.status == "FAILED") {
this.insertedRecords = this.feedRecordsJob.insertedIds;
this.errorInRecords = this.feedRecordsJob.errorInClaims;
}
@ -622,8 +621,8 @@ export class ClaimInsertComponent {
if(this.claimsJob) {
this.subscriptions.push(this.claimService.getStatus(this.claimsJob.id, this.properties.claimsAPIURL).subscribe(data => {
this.claimsJob = data.data;
// console.log("claim: ", this.claimsJob.status, this.feedRecordsJob.status?this.feedRecordsJob.status:" no feed job");
if ((this.claimsJob.status == "COMPLETE" || data.data.status == "ERROR") && ( !this.feedRecordsJob || (this.feedRecordsJob.status == "COMPLETE" || data.data.status == "ERROR")) ) {
if ((this.claimsJob.status == "COMPLETE" || this.claimsJob.status == "FAILED") &&
( !this.feedRecordsJob || (this.feedRecordsJob.status == "COMPLETE" || data.data.status == "FAILED"))) {
this.insertedClaims = this.claimsJob.insertedIds;
this.errorInClaims = this.claimsJob.errorInClaims;
@ -636,7 +635,7 @@ export class ClaimInsertComponent {
this.errors.push(error);
}
this.afterclaimsInsertion();
this.timerSubscription.unsubscribe();
}
}, err => {