UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

43 lines 6.04 kB
import { DestroyRef, Injectable, Injector } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { ApiService } from '@c8y/ngx-components/api'; import { AlertService, gettext } from '@c8y/ngx-components'; import { PendingMoRequestInterceptor } from './pending-mo-request-interceptor'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/ngx-components/api"; import * as i2 from "@c8y/ngx-components"; export class PendingMoRequestService { constructor(injector, apiService, alertService, destroyRef) { this.injector = injector; this.apiService = apiService; this.alertService = alertService; this.destroyRef = destroyRef; } setupHooks() { this.apiService.addInterceptor(new PendingMoRequestInterceptor(this.injector)); /* Backend will return 202 when a request takes more than 30 seconds to complete * and will continue the execution in the background. So the user will be able to navigate away. */ this.apiService .hookResponse(call => call.method === 'DELETE' && /inventory\/managedObjects/.test(call.url) && call.response.status === 202) .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe(() => { this.alertService.add({ type: 'system', text: gettext('The managed object is deleted in the background. Continue with using the platform as normal.'), timeout: 10000 }); }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingMoRequestService, deps: [{ token: i0.Injector }, { token: i1.ApiService }, { token: i2.AlertService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingMoRequestService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingMoRequestService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.ApiService }, { type: i2.AlertService }, { type: i0.DestroyRef }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1tby1yZXF1ZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wZW5kaW5nLW1vLXJlcXVlc3QvcGVuZGluZy1tby1yZXF1ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBSy9FLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDVSxRQUFrQixFQUNsQixVQUFzQixFQUN0QixZQUEwQixFQUMxQixVQUFzQjtRQUh0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUM3QixDQUFDO0lBRUosVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksMkJBQTJCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFL0U7O1dBRUc7UUFDSCxJQUFJLENBQUMsVUFBVTthQUNaLFlBQVksQ0FDWCxJQUFJLENBQUMsRUFBRSxDQUNMLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUTtZQUN4QiwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQy9CO2FBQ0EsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxPQUFPLENBQ1gsOEZBQThGLENBQy9GO2dCQUNELE9BQU8sRUFBRSxLQUFLO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQS9CVSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FwaSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFBlbmRpbmdNb1JlcXVlc3RJbnRlcmNlcHRvciB9IGZyb20gJy4vcGVuZGluZy1tby1yZXF1ZXN0LWludGVyY2VwdG9yJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGVuZGluZ01vUmVxdWVzdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWZcbiAgKSB7fVxuXG4gIHNldHVwSG9va3MoKSB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmFkZEludGVyY2VwdG9yKG5ldyBQZW5kaW5nTW9SZXF1ZXN0SW50ZXJjZXB0b3IodGhpcy5pbmplY3RvcikpO1xuXG4gICAgLyogQmFja2VuZCB3aWxsIHJldHVybiAyMDIgd2hlbiBhIHJlcXVlc3QgdGFrZXMgbW9yZSB0aGFuIDMwIHNlY29uZHMgdG8gY29tcGxldGVcbiAgICAgKiBhbmQgd2lsbCBjb250aW51ZSB0aGUgZXhlY3V0aW9uIGluIHRoZSBiYWNrZ3JvdW5kLiBTbyB0aGUgdXNlciB3aWxsIGJlIGFibGUgdG8gbmF2aWdhdGUgYXdheS5cbiAgICAgKi9cbiAgICB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5ob29rUmVzcG9uc2UoXG4gICAgICAgIGNhbGwgPT5cbiAgICAgICAgICBjYWxsLm1ldGhvZCA9PT0gJ0RFTEVURScgJiZcbiAgICAgICAgICAvaW52ZW50b3J5XFwvbWFuYWdlZE9iamVjdHMvLnRlc3QoY2FsbC51cmwpICYmXG4gICAgICAgICAgY2FsbC5yZXNwb25zZS5zdGF0dXMgPT09IDIwMlxuICAgICAgKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkKHtcbiAgICAgICAgICB0eXBlOiAnc3lzdGVtJyxcbiAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KFxuICAgICAgICAgICAgJ1RoZSBtYW5hZ2VkIG9iamVjdCBpcyBkZWxldGVkIGluIHRoZSBiYWNrZ3JvdW5kLiBDb250aW51ZSB3aXRoIHVzaW5nIHRoZSBwbGF0Zm9ybSBhcyBub3JtYWwuJ1xuICAgICAgICAgICksXG4gICAgICAgICAgdGltZW91dDogMTAwMDBcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19