UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

57 lines 8.18 kB
import { Injectable } from '@angular/core'; import { InventoryService } from '@c8y/client'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/client"; export class GlobalConfigService { constructor(inventory) { this.inventory = inventory; this.fragmentTypeMapping = { c8y_Software: 'c8y_SoftwareAsGlobal', c8y_Firmware: 'c8y_FirmwareAsGlobal', c8y_ConfigurationDump: 'c8y_ConfigurationAsGlobal', c8y_DeviceShellTemplate: 'c8y_ShellTemplateAsGlobal', c8y_ModbusDeviceType: 'c8y_FieldbusAsGlobal', c8y_CANopenDeviceType: 'c8y_CANOpenAsGlobal', c8y_LoraDeviceType: 'c8y_LoraAsGlobal', c8y_SigfoxDeviceType: 'c8y_SigfoxAsGlobal', c8y_Profile: 'c8y_ProfileAsGlobal' }; this.cache = undefined; } /** * Retrieves the global configuration for a specific fragment type. * @param fragmentType - The fragment type on which the managed object type corresponds. * @returns A promise that resolves in the first global configuration managed object. */ async getGlobalConfig(fragmentType) { const queryParams = { pageSize: 1, type: 'c8y_GlobalObjectConfiguration', createdFrom: '1990-01-01', fragmentType }; if (!this.cache) { this.cache = this.inventory.list(queryParams); } return (await this.cache)?.data[0]; } /** * Retrieves whether an object should include the c8y_Global fragment in its declaration. * If the fragment is set to false it should return false; * If the fragment is set to true it should return true; * If no fragment is available it should return true; * @param objectType - The type of managed object. * @returns A promise that resolves into a boolean value indicating whether the global parameter should be set. */ getGlobalParam(objectType) { const fragmentType = this.fragmentTypeMapping[objectType]; return this.getGlobalConfig(fragmentType).then(result => result && result[fragmentType] !== undefined ? !!result[fragmentType] : true); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GlobalConfigService, deps: [{ token: i1.InventoryService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GlobalConfigService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GlobalConfigService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.InventoryService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vZ2xvYmFsLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFrQixnQkFBZ0IsRUFBZSxNQUFNLGFBQWEsQ0FBQzs7O0FBYTVFLE1BQU0sT0FBTyxtQkFBbUI7SUFlOUIsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFadkMsd0JBQW1CLEdBQW9EO1lBQzdFLFlBQVksRUFBRSxzQkFBc0I7WUFDcEMsWUFBWSxFQUFFLHNCQUFzQjtZQUNwQyxxQkFBcUIsRUFBRSwyQkFBMkI7WUFDbEQsdUJBQXVCLEVBQUUsMkJBQTJCO1lBQ3BELG9CQUFvQixFQUFFLHNCQUFzQjtZQUM1QyxxQkFBcUIsRUFBRSxxQkFBcUI7WUFDNUMsa0JBQWtCLEVBQUUsa0JBQWtCO1lBQ3RDLG9CQUFvQixFQUFFLG9CQUFvQjtZQUMxQyxXQUFXLEVBQUUscUJBQXFCO1NBQzFCLENBQUM7UUFHVCxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsWUFBb0I7UUFDeEMsTUFBTSxXQUFXLEdBQUc7WUFDbEIsUUFBUSxFQUFFLENBQUM7WUFDWCxJQUFJLEVBQUUsK0JBQStCO1lBQ3JDLFdBQVcsRUFBRSxZQUFZO1lBQ3pCLFlBQVk7U0FDYixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsY0FBYyxDQUFDLFVBQXNDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ3RELE1BQU0sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdFLENBQUM7SUFDSixDQUFDOytHQXJEVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UsIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuXG5leHBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0VHlwZUZvckNvbmZpZyA9XG4gIHwgJ2M4eV9Tb2Z0d2FyZSdcbiAgfCAnYzh5X0Zpcm13YXJlJ1xuICB8ICdjOHlfQ29uZmlndXJhdGlvbkR1bXAnXG4gIHwgJ2M4eV9Nb2RidXNEZXZpY2VUeXBlJ1xuICB8ICdjOHlfQ0FOb3BlbkRldmljZVR5cGUnXG4gIHwgJ2M4eV9Mb3JhRGV2aWNlVHlwZSdcbiAgfCAnYzh5X1NpZ2ZveERldmljZVR5cGUnXG4gIHwgJ2M4eV9EZXZpY2VTaGVsbFRlbXBsYXRlJ1xuICB8ICdjOHlfUHJvZmlsZSc7XG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEdsb2JhbENvbmZpZ1NlcnZpY2Uge1xuICBwcm90ZWN0ZWQgY2FjaGU6IFByb21pc2U8SVJlc3VsdExpc3Q8SU1hbmFnZWRPYmplY3QgfCB1bmRlZmluZWQ+PjtcblxuICBwcml2YXRlIGZyYWdtZW50VHlwZU1hcHBpbmc6IHsgW2tleSBpbiBNYW5hZ2VkT2JqZWN0VHlwZUZvckNvbmZpZ106IHN0cmluZyB9ID0ge1xuICAgIGM4eV9Tb2Z0d2FyZTogJ2M4eV9Tb2Z0d2FyZUFzR2xvYmFsJyxcbiAgICBjOHlfRmlybXdhcmU6ICdjOHlfRmlybXdhcmVBc0dsb2JhbCcsXG4gICAgYzh5X0NvbmZpZ3VyYXRpb25EdW1wOiAnYzh5X0NvbmZpZ3VyYXRpb25Bc0dsb2JhbCcsXG4gICAgYzh5X0RldmljZVNoZWxsVGVtcGxhdGU6ICdjOHlfU2hlbGxUZW1wbGF0ZUFzR2xvYmFsJyxcbiAgICBjOHlfTW9kYnVzRGV2aWNlVHlwZTogJ2M4eV9GaWVsZGJ1c0FzR2xvYmFsJyxcbiAgICBjOHlfQ0FOb3BlbkRldmljZVR5cGU6ICdjOHlfQ0FOT3BlbkFzR2xvYmFsJyxcbiAgICBjOHlfTG9yYURldmljZVR5cGU6ICdjOHlfTG9yYUFzR2xvYmFsJyxcbiAgICBjOHlfU2lnZm94RGV2aWNlVHlwZTogJ2M4eV9TaWdmb3hBc0dsb2JhbCcsXG4gICAgYzh5X1Byb2ZpbGU6ICdjOHlfUHJvZmlsZUFzR2xvYmFsJ1xuICB9IGFzIGNvbnN0O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlKSB7XG4gICAgdGhpcy5jYWNoZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGZyYWdtZW50IHR5cGUuXG4gICAqIEBwYXJhbSBmcmFnbWVudFR5cGUgLSBUaGUgZnJhZ21lbnQgdHlwZSBvbiB3aGljaCB0aGUgbWFuYWdlZCBvYmplY3QgdHlwZSBjb3JyZXNwb25kcy5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgaW4gdGhlIGZpcnN0IGdsb2JhbCBjb25maWd1cmF0aW9uIG1hbmFnZWQgb2JqZWN0LlxuICAgKi9cbiAgYXN5bmMgZ2V0R2xvYmFsQ29uZmlnKGZyYWdtZW50VHlwZTogc3RyaW5nKTogUHJvbWlzZTxJTWFuYWdlZE9iamVjdCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgcGFnZVNpemU6IDEsXG4gICAgICB0eXBlOiAnYzh5X0dsb2JhbE9iamVjdENvbmZpZ3VyYXRpb24nLFxuICAgICAgY3JlYXRlZEZyb206ICcxOTkwLTAxLTAxJyxcbiAgICAgIGZyYWdtZW50VHlwZVxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmludmVudG9yeS5saXN0KHF1ZXJ5UGFyYW1zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuY2FjaGUpPy5kYXRhWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB3aGV0aGVyIGFuIG9iamVjdCBzaG91bGQgaW5jbHVkZSB0aGUgYzh5X0dsb2JhbCBmcmFnbWVudCBpbiBpdHMgZGVjbGFyYXRpb24uXG4gICAqIElmIHRoZSBmcmFnbWVudCBpcyBzZXQgdG8gZmFsc2UgaXQgc2hvdWxkIHJldHVybiBmYWxzZTtcbiAgICogSWYgdGhlIGZyYWdtZW50IGlzIHNldCB0byB0cnVlICBpdCBzaG91bGQgcmV0dXJuIHRydWU7XG4gICAqIElmIG5vIGZyYWdtZW50IGlzIGF2YWlsYWJsZSAgaXQgc2hvdWxkIHJldHVybiB0cnVlO1xuICAgKiBAcGFyYW0gb2JqZWN0VHlwZSAtIFRoZSB0eXBlIG9mIG1hbmFnZWQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBpbnRvIGEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGdsb2JhbCBwYXJhbWV0ZXIgc2hvdWxkIGJlIHNldC5cbiAgICovXG4gIGdldEdsb2JhbFBhcmFtKG9iamVjdFR5cGU6IE1hbmFnZWRPYmplY3RUeXBlRm9yQ29uZmlnKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZnJhZ21lbnRUeXBlID0gdGhpcy5mcmFnbWVudFR5cGVNYXBwaW5nW29iamVjdFR5cGVdO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0R2xvYmFsQ29uZmlnKGZyYWdtZW50VHlwZSkudGhlbihyZXN1bHQgPT5cbiAgICAgIHJlc3VsdCAmJiByZXN1bHRbZnJhZ21lbnRUeXBlXSAhPT0gdW5kZWZpbmVkID8gISFyZXN1bHRbZnJhZ21lbnRUeXBlXSA6IHRydWVcbiAgICApO1xuICB9XG59XG4iXX0=