diff options
Diffstat (limited to 'public/src/app/rule-engine/rule-list/rule-list.component.ts')
-rw-r--r-- | public/src/app/rule-engine/rule-list/rule-list.component.ts | 65 |
1 files changed, 48 insertions, 17 deletions
diff --git a/public/src/app/rule-engine/rule-list/rule-list.component.ts b/public/src/app/rule-engine/rule-list/rule-list.component.ts index c2878c1..6e3c877 100644 --- a/public/src/app/rule-engine/rule-list/rule-list.component.ts +++ b/public/src/app/rule-engine/rule-list/rule-list.component.ts @@ -47,6 +47,7 @@ export class RuleListComponent { private errorHandler(error: any) { this.store.loader = false; console.log(error); + this.error = null; this.error = []; if (typeof error === 'string') { this.error.push(error); @@ -61,6 +62,20 @@ export class RuleListComponent { } } + private notifyError(error: any) { + this.store.loader = false; + console.log(error.notes); + const errorFromServer = Object.values(error)[0] as any; + if (Object.keys(error)[0] === 'serviceExceptions') { + this.store.ErrorContent.push( + errorFromServer.map(x => x.formattedErrorMessage) + ); + } else { + this.store.ErrorContent.push(errorFromServer); + } + this.store.displayErrorDialog = true; + } + updateCondition(data) { this.condition = data; } @@ -95,6 +110,7 @@ export class RuleListComponent { this._ruleApi.deleteFilter().subscribe( response => { console.log('success import', response); + this.condition = null; this.store.loader = false; }, error => { @@ -103,6 +119,7 @@ export class RuleListComponent { this.errorHandler(error); } else { this.store.loader = false; + this.errorHandler(error); } this.condition = null; } @@ -177,23 +194,37 @@ export class RuleListComponent { .subscribe( res => { this.store.mcUuid = res.uuid; - const input = { - version: this.versionType.selectedVersion, - eventType: this.versionType.selectedEvent, - groupId: groupId, - phase: phaseName, - payload: JSON.parse(reader.result) - }; - this._ruleApi.importPhase(input).subscribe( - response => { - console.log('success import', response); - this.store.loader = false; - this.store.updateRuleList(Object.values(response.rules)); - }, - error => { - this.errorHandler(error); - } - ); + let data = ''; + try { + data = JSON.parse(reader.result as any); + const input = { + version: this.versionType.selectedVersion, + eventType: this.versionType.selectedEvent, + groupId: groupId, + phase: phaseName, + payload: data + }; + this._ruleApi.importPhase(input).subscribe( + response => { + console.log('success import', response); + this.store.loader = false; + this.store.updateRuleList(Object.values(response.rules)); + }, + error => { + this.notifyError(error); + } + ); + } catch (e) { + console.log(e); + this.errorHandler({ + policyException: { + messageId: 'Invalid JSON', + text: 'Invalid JSON', + variables: [], + formattedErrorMessage: 'Invalid JSON' + } + }); + } }, error => { this.errorHandler(error); |