UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

51 lines 7.11 kB
import { Injectable } from '@angular/core'; import { InventoryService } from '@c8y/client'; import { GroupFragment } from '@c8y/ngx-components'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/client"; export class AddGroupService { constructor(inventoryService) { this.inventoryService = inventoryService; this.GROUP_FRAGMENT_TYPE = 'c8y_IsDeviceGroup'; } async createGroupAndAssignDevices(groupForm, groupContextId, selectedDevices) { let group; const { name, description } = groupForm; const newGroupMO = this.getGroupMO(name, description, groupContextId); if (groupContextId) { group = (await this.inventoryService.childAssetsCreate(newGroupMO, groupContextId)).data; } else { group = (await this.inventoryService.create(newGroupMO)).data; } if (selectedDevices.length > 0) { await this.assignDevices(group.id, selectedDevices); } return group; } getGroupMO(name, description = '', groupContextId) { const group = { type: this.getGroupType(groupContextId), [this.GROUP_FRAGMENT_TYPE]: {}, name, c8y_Notes: description }; return group; } getGroupType(groupContextId) { return groupContextId ? GroupFragment.subGroupType : GroupFragment.groupType; } async assignDevices(id, selectedDevices) { const promises = []; selectedDevices.forEach(moId => { promises.push(this.inventoryService.childAssetsAdd(moId, id)); }); return await Promise.all(promises); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddGroupService, deps: [{ token: i1.InventoryService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddGroupService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddGroupService, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.InventoryService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWdyb3VwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zdWItYXNzZXRzL2FkZC1ncm91cC9hZGQtZ3JvdXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBK0IsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFHcEQsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGOUMsd0JBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFFTyxDQUFDO0lBRTFELEtBQUssQ0FBQywyQkFBMkIsQ0FDL0IsU0FBb0IsRUFDcEIsY0FBK0IsRUFDL0IsZUFBeUI7UUFFekIsSUFBSSxLQUFtQyxDQUFDO1FBQ3hDLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV0RSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLEtBQUssR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRixDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNoRSxDQUFDO1FBRUQsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxVQUFVLENBQ2hCLElBQVksRUFDWixXQUFXLEdBQUcsRUFBRSxFQUNoQixjQUErQjtRQUUvQixNQUFNLEtBQUssR0FBRztZQUNaLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztZQUN2QyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUU7WUFDOUIsSUFBSTtZQUNKLFNBQVMsRUFBRSxXQUFXO1NBQ3ZCLENBQUM7UUFFRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxZQUFZLENBQ2xCLGNBQStCO1FBRS9CLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQy9FLENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQW1CLEVBQUUsZUFBeUI7UUFDeEUsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXBCLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQzsrR0F4RFUsZUFBZTttSEFBZixlQUFlOzs0RkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUlkZW50aWZpZWQsIElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgR3JvdXBGb3JtIH0gZnJvbSAnLi9hZGQtZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgR3JvdXBGcmFnbWVudCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWRkR3JvdXBTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBHUk9VUF9GUkFHTUVOVF9UWVBFID0gJ2M4eV9Jc0RldmljZUdyb3VwJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UpIHt9XG5cbiAgYXN5bmMgY3JlYXRlR3JvdXBBbmRBc3NpZ25EZXZpY2VzKFxuICAgIGdyb3VwRm9ybTogR3JvdXBGb3JtLFxuICAgIGdyb3VwQ29udGV4dElkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgc2VsZWN0ZWREZXZpY2VzOiBzdHJpbmdbXVxuICApOiBQcm9taXNlPElNYW5hZ2VkT2JqZWN0IHwgSUlkZW50aWZpZWQ+IHtcbiAgICBsZXQgZ3JvdXA6IElNYW5hZ2VkT2JqZWN0IHwgSUlkZW50aWZpZWQ7XG4gICAgY29uc3QgeyBuYW1lLCBkZXNjcmlwdGlvbiB9ID0gZ3JvdXBGb3JtO1xuICAgIGNvbnN0IG5ld0dyb3VwTU8gPSB0aGlzLmdldEdyb3VwTU8obmFtZSwgZGVzY3JpcHRpb24sIGdyb3VwQ29udGV4dElkKTtcblxuICAgIGlmIChncm91cENvbnRleHRJZCkge1xuICAgICAgZ3JvdXAgPSAoYXdhaXQgdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmNoaWxkQXNzZXRzQ3JlYXRlKG5ld0dyb3VwTU8sIGdyb3VwQ29udGV4dElkKSkuZGF0YTtcbiAgICB9IGVsc2Uge1xuICAgICAgZ3JvdXAgPSAoYXdhaXQgdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmNyZWF0ZShuZXdHcm91cE1PKSkuZGF0YTtcbiAgICB9XG5cbiAgICBpZiAoc2VsZWN0ZWREZXZpY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuYXNzaWduRGV2aWNlcyhncm91cC5pZCwgc2VsZWN0ZWREZXZpY2VzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JvdXA7XG4gIH1cblxuICBwcml2YXRlIGdldEdyb3VwTU8oXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uID0gJycsXG4gICAgZ3JvdXBDb250ZXh0SWQ6IHN0cmluZyB8IG51bWJlclxuICApOiBQYXJ0aWFsPElNYW5hZ2VkT2JqZWN0PiB7XG4gICAgY29uc3QgZ3JvdXAgPSB7XG4gICAgICB0eXBlOiB0aGlzLmdldEdyb3VwVHlwZShncm91cENvbnRleHRJZCksXG4gICAgICBbdGhpcy5HUk9VUF9GUkFHTUVOVF9UWVBFXToge30sXG4gICAgICBuYW1lLFxuICAgICAgYzh5X05vdGVzOiBkZXNjcmlwdGlvblxuICAgIH07XG5cbiAgICByZXR1cm4gZ3JvdXA7XG4gIH1cblxuICBwcml2YXRlIGdldEdyb3VwVHlwZShcbiAgICBncm91cENvbnRleHRJZDogc3RyaW5nIHwgbnVtYmVyXG4gICk6IEdyb3VwRnJhZ21lbnQuc3ViR3JvdXBUeXBlIHwgR3JvdXBGcmFnbWVudC5ncm91cFR5cGUge1xuICAgIHJldHVybiBncm91cENvbnRleHRJZCA/IEdyb3VwRnJhZ21lbnQuc3ViR3JvdXBUeXBlIDogR3JvdXBGcmFnbWVudC5ncm91cFR5cGU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFzc2lnbkRldmljZXMoaWQ6IHN0cmluZyB8IG51bWJlciwgc2VsZWN0ZWREZXZpY2VzOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IHByb21pc2VzID0gW107XG5cbiAgICBzZWxlY3RlZERldmljZXMuZm9yRWFjaChtb0lkID0+IHtcbiAgICAgIHByb21pc2VzLnB1c2godGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmNoaWxkQXNzZXRzQWRkKG1vSWQsIGlkKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICB9XG59XG4iXX0=