Fix Bug 2048:The VCA Status for an NS with both a KNF and a VNF does not provide...
[osm/NG-UI.git] / src / services / RestService.ts
index bea559a..e333627 100644 (file)
@@ -20,7 +20,6 @@
  * @file Provider for REST Service
  */
 
-import { isNullOrUndefined } from 'util';
 import { HttpClient, HttpHeaders } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
@@ -41,6 +40,9 @@ export class RestService {
     private http: HttpClient;
     /** API URL. Disabled tslint since server doesn't support https protocol */
     private apiURL: string = '';
+    /** Method to handle null or undefined @private */
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
+    private isNullOrUndefined = (data: any): boolean => data === null || data === undefined;
     /** Notifier service to popup notification @private */
     private notifierService: NotifierService;
     /** Instance for active modal service @public */
@@ -62,7 +64,7 @@ export class RestService {
 
     public getResource(apiURL: string, httpHeaders?: { headers: HttpHeaders }): Observable<{}> {
         const getRequest: APIURLHEADER = this.getHttpoptions(apiURL);
-        if (!isNullOrUndefined(httpHeaders)) {
+        if (!this.isNullOrUndefined(httpHeaders)) {
             return this.http.get(apiURL, httpHeaders);
         } else {
             return this.http.get(getRequest.url, getRequest.httpOptions);
@@ -77,7 +79,7 @@ export class RestService {
 
     public postResource(apiURLHeader: { url: string, httpOptions?: { headers: HttpHeaders } }, payload: {}): Observable<{}> {
         const getRequest: APIURLHEADER = this.getHttpoptions(apiURLHeader.url);
-        if (!isNullOrUndefined(apiURLHeader.httpOptions)) {
+        if (!this.isNullOrUndefined(apiURLHeader.httpOptions)) {
             return this.http.post(apiURLHeader.url, payload, apiURLHeader.httpOptions);
         } else {
             return this.http.post(getRequest.url, payload, getRequest.httpOptions);
@@ -92,7 +94,7 @@ export class RestService {
 
     public patchResource(apiURLHeader: { url: string, httpOptions?: { headers: HttpHeaders } }, payload: {}): Observable<object> {
         const getRequest: APIURLHEADER = this.getHttpoptions(apiURLHeader.url);
-        if (!isNullOrUndefined(apiURLHeader.httpOptions)) {
+        if (!this.isNullOrUndefined(apiURLHeader.httpOptions)) {
             return this.http.patch(apiURLHeader.url, payload, apiURLHeader.httpOptions);
         } else {
             return this.http.patch(getRequest.url, payload, getRequest.httpOptions);
@@ -107,7 +109,7 @@ export class RestService {
 
     public putResource(apiURLHeader: { url: string, httpOptions?: { headers: HttpHeaders } }, payload: {}): Observable<object> {
         const getRequest: APIURLHEADER = this.getHttpoptions(apiURLHeader.url);
-        if (!isNullOrUndefined(apiURLHeader.httpOptions)) {
+        if (!this.isNullOrUndefined(apiURLHeader.httpOptions)) {
             return this.http.put(apiURLHeader.url, payload, apiURLHeader.httpOptions);
         } else {
             return this.http.put(getRequest.url, payload, getRequest.httpOptions);
@@ -121,7 +123,7 @@ export class RestService {
 
     public deleteResource(apiURL: string, httpHeaders?: { headers: HttpHeaders }): Observable<object> {
         const getRequest: APIURLHEADER = this.getHttpoptions(apiURL);
-        if (!isNullOrUndefined(httpHeaders)) {
+        if (!this.isNullOrUndefined(httpHeaders)) {
             return this.http.delete(apiURL, httpHeaders);
         } else {
             return this.http.delete(getRequest.url, getRequest.httpOptions);
@@ -141,8 +143,11 @@ export class RestService {
                     this.notifierService.notify('error', err.error.detail !== undefined ?
                         err.error.detail : this.translateService.instant('HTTPERROR.401'));
                 }
-                this.activeModal.dismissAll();
+            } else {
+                this.notifierService.notify('error', err?.error?.detail !== undefined ?
+                    err?.error?.detail : this.translateService.instant('HTTPERROR.401'));
             }
+            this.activeModal.dismissAll();
         } else if (err.error.status === HttpStatus.BAD_REQUEST) {
             this.notifierService.notify('error', err.error.detail !== undefined ?
                 err.error.detail : this.translateService.instant('HTTPERROR.400'));
@@ -152,6 +157,9 @@ export class RestService {
         } else if (err.error.status === HttpStatus.CONFLICT) {
             this.notifierService.notify('error', err.error.detail !== undefined ?
                 err.error.detail : this.translateService.instant('HTTPERROR.409'));
+            if (sessionStorage.getItem('usertype') !== 'change_password') {
+                this.activeModal.dismissAll();
+            }
             this.activeModal.dismissAll();
         } else if (err.error.status === HttpStatus.INTERNAL_SERVER_ERROR) {
             this.notifierService.notify('error', err.error.detail !== undefined ?
@@ -177,7 +185,7 @@ export class RestService {
         });
         return {
             url: apiURL,
-            httpOptions: {headers : apiHeaders}
+            httpOptions: { headers: apiHeaders }
         };
     }
 }