@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
1 lines • 10.5 kB
Source Map (JSON)
{"version":3,"file":"c8y-ngx-components-operations-bulk-operations-service.mjs","sources":["../../operations/bulk-operations-service/bulk-operations.service.ts","../../operations/bulk-operations-service/bulk-operations-service.module.ts","../../operations/bulk-operations-service/bulk-operation.model.ts","../../operations/bulk-operations-service/c8y-ngx-components-operations-bulk-operations-service.ts"],"sourcesContent":["import { Location } from '@angular/common';\nimport { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { flatten, has, isUndefined } from 'lodash-es';\nimport { Subject } from 'rxjs';\n\nimport {\n IdReference,\n IManagedObject,\n InventoryService,\n IOperation,\n IOperationBulk,\n IResult,\n OperationBulkService,\n OperationService\n} from '@c8y/client';\n\nimport { OperationDetails } from './operation-details.model';\nimport { OperationType } from './operation-type.model';\nimport { BulkOperationType } from './bulk-operation.model';\nimport { GenericHookType, hookGeneric, GenericHookOptions } from '@c8y/ngx-components';\n\nexport const baseUrl = 'devicecontrol/bulk/creation/';\n\n/**\n * @deprecated Consider using the `hookListBulkType` function instead.\n */\nexport const HOOK_LIST_BULK_TYPE = new InjectionToken<OperationType | OperationType[]>(\n 'HOOK_LIST_BULK_TYPE'\n);\n\n/**\n * You can either provide a single `OperationType` as parameter:\n * ```typescript\n * hookListBulkType(...)\n * ```\n *\n * Or an array to directly register multiple:\n * ```typescript\n * hookListBulkType([...])\n * ```\n *\n * Or you provide an Service that implements `ExtensionFactory<OperationType>`\n * ```typescript\n * export class MyListBulkTypeFactory implements ExtensionFactory<OperationType> {...}\n * ...\n * hookListBulkType(MyListBulkTypeFactory)\n * ```\n * A typed alternative to `HOOK_LIST_BULK_TYPE`.\n * @param type The `OperationType`'s or `ExtensionFactory` to be provided.\n * @returns An `Provider` to be provided in your module.\n */\nexport function hookListBulkType(\n type: GenericHookType<OperationType>,\n options?: Partial<GenericHookOptions>\n) {\n return hookGeneric<OperationType>(type, HOOK_LIST_BULK_TYPE, options);\n}\n\n@Injectable()\nexport class BulkOperationsService {\n readonly DD_LOW_COUNT: number = 10;\n firmwareId: Subject<IdReference> = new Subject<IdReference>();\n\n private bulkTypes: OperationType[];\n\n constructor(\n private operationBulkService: OperationBulkService,\n private operationService: OperationService,\n private inventoryService: InventoryService,\n private location: Location,\n\n @Optional() @Inject(HOOK_LIST_BULK_TYPE) bulkTypes: Array<OperationType | OperationType[]>\n ) {\n this.bulkTypes = flatten(bulkTypes);\n\n this.bulkTypes = this.bulkTypes.map(type => {\n if (isUndefined(type.selected)) {\n type.selected = false;\n }\n return type;\n });\n }\n\n getBulkOperations(customFilter = {}) {\n const filter = {\n withTotalPages: true,\n withDeleted: true,\n pageSize: 50,\n ...customFilter\n };\n\n return this.operationBulkService.list(filter);\n }\n\n getBulkOperationById(bulkOperationId: string | number) {\n return this.operationBulkService.detail(bulkOperationId);\n }\n\n createBulkOperation(bulkOperation: Partial<IOperationBulk>) {\n return this.operationBulkService.create(bulkOperation);\n }\n\n deleteBulkOperation(bulkOperationId) {\n return this.operationBulkService.delete(bulkOperationId);\n }\n\n updateBulkOperation(bulkOperation: Partial<IOperationBulk>) {\n return this.operationBulkService.update(bulkOperation);\n }\n\n getOperation(id: string): Promise<IResult<IOperation>> {\n return this.operationService.detail(id);\n }\n\n returnToBulkOperationOverview() {\n this.location.back();\n }\n\n setBulkTypes(list: OperationType[]) {\n this.bulkTypes = list;\n }\n\n getBulkTypes(): OperationType[] {\n return this.bulkTypes;\n }\n\n setFirmwareId(id: IdReference) {\n this.firmwareId.next(id);\n }\n\n createGroup(deviceQueryDataString: string) {\n const dynamicGroup: Partial<IManagedObject> = {\n name: 'Bulk operations group',\n type: 'c8y_DynamicGroup',\n c8y_IsDynamicGroup: { invisible: {} },\n c8y_DeviceQueryString: deviceQueryDataString\n };\n\n return this.inventoryService.create(dynamicGroup);\n }\n\n async scheduleBulkOperation(deviceQueryString: string, details: OperationDetails) {\n const dynamicGroup = await this.createGroup(deviceQueryString);\n\n const bulkOperation: IOperationBulk = {\n groupId: dynamicGroup.data.id,\n operationPrototype: details.prototype,\n creationRamp: details.schedule.delayInSeconds,\n startDate: details.schedule.scheduledDate.toISOString(),\n note: details.note\n };\n\n await this.createBulkOperation(bulkOperation);\n }\n\n getSingleOperationsByStatus(status, bulkOperationId) {\n const filter = {\n withTotalPages: true,\n bulkOperationId,\n status: (status && status.toUpperCase()) || ''\n };\n\n return this.operationService.list(filter);\n }\n\n updateSingleOperation(partialUpdateObject: Partial<IOperation>) {\n return this.operationService.update(partialUpdateObject);\n }\n\n retrieveBulkOperationType(operation: IOperation): BulkOperationType {\n let type: BulkOperationType;\n\n this.bulkTypes.some(t => {\n if (t.fragments.some(fragment => has(operation, fragment))) {\n type = t.type;\n return true;\n }\n });\n\n return type;\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { BulkOperationsService } from './bulk-operations.service';\n\n/**\n * This module provides a shared bulk operations service.\n */\n@NgModule({\n imports: [],\n providers: [BulkOperationsService]\n})\nexport class BulkOperationsServiceModule {}\n","export enum BulkOperationType {\n SOFTWARE = 'software',\n FIRMWARE = 'firmware',\n CONFIGURATION = 'configuration',\n DEVICE_PROFILE = 'device-profile'\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}