@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
57 lines • 8.18 kB
JavaScript
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=