kuzzle-device-manager 2.4.0-beta.2 → 2.4.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/modules/asset/AssetHistoryService.d.ts +2 -4
- package/dist/lib/modules/asset/AssetHistoryService.js +4 -7
- package/dist/lib/modules/asset/AssetHistoryService.js.map +1 -1
- package/dist/lib/modules/asset/AssetService.d.ts +25 -26
- package/dist/lib/modules/asset/AssetService.js +235 -42
- package/dist/lib/modules/asset/AssetService.js.map +1 -1
- package/dist/lib/modules/asset/AssetsController.d.ts +4 -1
- package/dist/lib/modules/asset/AssetsController.js +51 -25
- package/dist/lib/modules/asset/AssetsController.js.map +1 -1
- package/dist/lib/modules/asset/AssetsGroupsController.js +1 -1
- package/dist/lib/modules/asset/AssetsGroupsController.js.map +1 -1
- package/dist/lib/modules/asset/model/AssetSerializer.js +1 -0
- package/dist/lib/modules/asset/model/AssetSerializer.js.map +1 -1
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js +3 -0
- package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js.map +1 -1
- package/dist/lib/modules/asset/types/AssetApi.d.ts +32 -0
- package/dist/lib/modules/asset/types/AssetContent.d.ts +1 -1
- package/dist/lib/modules/decoder/DecodedPayload.js.map +1 -1
- package/dist/lib/modules/decoder/Decoder.d.ts +11 -0
- package/dist/lib/modules/decoder/Decoder.js +1 -0
- package/dist/lib/modules/decoder/Decoder.js.map +1 -1
- package/dist/lib/modules/decoder/DecodersRegister.js.map +1 -1
- package/dist/lib/modules/decoder/DecodingState.js +1 -1
- package/dist/lib/modules/decoder/DecodingState.js.map +1 -1
- package/dist/lib/modules/decoder/PayloadService.d.ts +3 -6
- package/dist/lib/modules/decoder/PayloadService.js +11 -17
- package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
- package/dist/lib/modules/decoder/PayloadsController.js.map +1 -1
- package/dist/lib/modules/decoder/types/DecoderContent.d.ts +1 -0
- package/dist/lib/modules/device/DeviceService.d.ts +27 -46
- package/dist/lib/modules/device/DeviceService.js +159 -73
- package/dist/lib/modules/device/DeviceService.js.map +1 -1
- package/dist/lib/modules/device/DevicesController.d.ts +2 -1
- package/dist/lib/modules/device/DevicesController.js +25 -41
- package/dist/lib/modules/device/DevicesController.js.map +1 -1
- package/dist/lib/modules/device/collections/deviceMappings.d.ts +2 -46
- package/dist/lib/modules/device/collections/deviceMappings.js.map +1 -1
- package/dist/lib/modules/device/types/DeviceApi.d.ts +11 -0
- package/dist/lib/modules/device/types/DeviceEvents.d.ts +29 -0
- package/dist/lib/modules/measure/MeasureExporter.d.ts +5 -2
- package/dist/lib/modules/measure/MeasureExporter.js +35 -14
- package/dist/lib/modules/measure/MeasureExporter.js.map +1 -1
- package/dist/lib/modules/measure/MeasureService.d.ts +2 -6
- package/dist/lib/modules/measure/MeasureService.js +6 -11
- package/dist/lib/modules/measure/MeasureService.js.map +1 -1
- package/dist/lib/modules/measure/collections/measuresMappings.d.ts +18 -0
- package/dist/lib/modules/measure/collections/measuresMappings.js +14 -0
- package/dist/lib/modules/measure/collections/measuresMappings.js.map +1 -1
- package/dist/lib/modules/measure/measures/BatteryMeasure.js +12 -0
- package/dist/lib/modules/measure/measures/BatteryMeasure.js.map +1 -1
- package/dist/lib/modules/measure/measures/HumidityMeasure.js +12 -0
- package/dist/lib/modules/measure/measures/HumidityMeasure.js.map +1 -1
- package/dist/lib/modules/measure/measures/MovementMeasure.js +10 -0
- package/dist/lib/modules/measure/measures/MovementMeasure.js.map +1 -1
- package/dist/lib/modules/measure/measures/PositionMeasure.js +22 -0
- package/dist/lib/modules/measure/measures/PositionMeasure.js.map +1 -1
- package/dist/lib/modules/measure/measures/TemperatureMeasure.js +12 -0
- package/dist/lib/modules/measure/measures/TemperatureMeasure.js.map +1 -1
- package/dist/lib/modules/measure/types/MeasureContent.d.ts +4 -0
- package/dist/lib/modules/measure/types/MeasureDefinition.d.ts +28 -3
- package/dist/lib/modules/model/MappingsConflictsError.d.ts +7 -0
- package/dist/lib/modules/model/MappingsConflictsError.js +20 -0
- package/dist/lib/modules/model/MappingsConflictsError.js.map +1 -0
- package/dist/lib/modules/model/ModelSerializer.js.map +1 -1
- package/dist/lib/modules/model/ModelService.d.ts +13 -8
- package/dist/lib/modules/model/ModelService.js +162 -28
- package/dist/lib/modules/model/ModelService.js.map +1 -1
- package/dist/lib/modules/model/ModelsConflicts.d.ts +30 -0
- package/dist/lib/modules/model/ModelsConflicts.js +107 -0
- package/dist/lib/modules/model/ModelsConflicts.js.map +1 -0
- package/dist/lib/modules/model/ModelsController.d.ts +2 -1
- package/dist/lib/modules/model/ModelsController.js +27 -3
- package/dist/lib/modules/model/ModelsController.js.map +1 -1
- package/dist/lib/modules/model/ModelsRegister.d.ts +28 -3
- package/dist/lib/modules/model/ModelsRegister.js +50 -5
- package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
- package/dist/lib/modules/model/collections/modelsMappings.js +24 -0
- package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
- package/dist/lib/modules/model/types/ModelApi.d.ts +24 -3
- package/dist/lib/modules/model/types/ModelContent.d.ts +207 -2
- package/dist/lib/modules/model/types/ModelContent.js +9 -0
- package/dist/lib/modules/model/types/ModelContent.js.map +1 -1
- package/dist/lib/modules/model/types/ModelDefinition.d.ts +129 -5
- package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +141 -5
- package/dist/lib/modules/plugin/DeviceManagerEngine.js +238 -41
- package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
- package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +113 -8
- package/dist/lib/modules/plugin/DeviceManagerPlugin.js +146 -16
- package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
- package/dist/lib/modules/plugin/exports.d.ts +1 -1
- package/dist/lib/modules/plugin/exports.js +1 -1
- package/dist/lib/modules/plugin/exports.js.map +1 -1
- package/dist/lib/modules/plugin/index.d.ts +1 -2
- package/dist/lib/modules/plugin/index.js +1 -2
- package/dist/lib/modules/plugin/index.js.map +1 -1
- package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +27 -5
- package/dist/lib/modules/plugin/types/InternalCollection.js +1 -1
- package/dist/lib/modules/plugin/types/InternalCollection.js.map +1 -1
- package/dist/lib/modules/plugin/types/Pipes.d.ts +17 -0
- package/dist/lib/modules/plugin/types/Pipes.js +3 -0
- package/dist/lib/modules/plugin/types/Pipes.js.map +1 -0
- package/dist/lib/modules/plugin/types/exports.d.ts +1 -0
- package/dist/lib/modules/plugin/types/exports.js +18 -0
- package/dist/lib/modules/plugin/types/exports.js.map +1 -0
- package/dist/lib/modules/plugin/types/index.d.ts +3 -0
- package/dist/lib/modules/plugin/types/index.js +20 -0
- package/dist/lib/modules/plugin/types/index.js.map +1 -0
- package/dist/lib/modules/shared/index.d.ts +3 -4
- package/dist/lib/modules/shared/index.js +3 -4
- package/dist/lib/modules/shared/index.js.map +1 -1
- package/dist/lib/modules/shared/services/AbstractExporter.d.ts +1 -0
- package/dist/lib/modules/shared/services/AbstractExporter.js +7 -1
- package/dist/lib/modules/shared/services/AbstractExporter.js.map +1 -1
- package/dist/lib/modules/shared/services/BaseService.d.ts +69 -0
- package/dist/lib/modules/shared/services/BaseService.js +157 -0
- package/dist/lib/modules/shared/services/BaseService.js.map +1 -0
- package/dist/lib/modules/shared/services/DigitalTwinExporter.js +9 -3
- package/dist/lib/modules/shared/services/DigitalTwinExporter.js.map +1 -1
- package/dist/lib/modules/shared/services/index.d.ts +1 -0
- package/dist/lib/modules/shared/services/index.js +1 -0
- package/dist/lib/modules/shared/services/index.js.map +1 -1
- package/dist/lib/modules/shared/utils/flattenObject.js.map +1 -1
- package/dist/lib/modules/shared/utils/lock.js.map +1 -1
- package/dist/lib/modules/shared/utils/objectDiff.js.map +1 -1
- package/package.json +26 -26
- package/dist/lib/modules/shared/utils/ask.d.ts +0 -8
- package/dist/lib/modules/shared/utils/ask.js +0 -12
- package/dist/lib/modules/shared/utils/ask.js.map +0 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TwinModelContent, TwinType } from "../plugin";
|
|
2
|
+
import { MeasureModelContent } from "./exports";
|
|
3
|
+
export type ConflictChunk = {
|
|
4
|
+
sourceModel: string;
|
|
5
|
+
newModel: string;
|
|
6
|
+
modelType: string;
|
|
7
|
+
conflicts: MappingsConflict[];
|
|
8
|
+
};
|
|
9
|
+
export type MappingsConflict = {
|
|
10
|
+
path: string;
|
|
11
|
+
currentType: string | undefined;
|
|
12
|
+
newType: string | undefined;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Return every conflicts between the mappings of twins and a new twin model
|
|
16
|
+
*
|
|
17
|
+
* @param twinType The target twin type
|
|
18
|
+
* @param models The already present twin models
|
|
19
|
+
* @param additional The new asset
|
|
20
|
+
* @returns An array of ConflictChunk between current twins and the new twin
|
|
21
|
+
*/
|
|
22
|
+
export declare function getTwinConflicts<TDigitalTwin extends TwinModelContent>(twinType: TwinType, models: TDigitalTwin[], additional: TDigitalTwin): ConflictChunk[];
|
|
23
|
+
/**
|
|
24
|
+
* Return every conflicts between the mappings of measure models and a new measure model
|
|
25
|
+
*
|
|
26
|
+
* @param measures The already present measure models
|
|
27
|
+
* @param additional The new measure
|
|
28
|
+
* @returns An array of ConflictChunk between current measures and the new measure
|
|
29
|
+
*/
|
|
30
|
+
export declare function getMeasureConflicts(measures: MeasureModelContent[], additional: MeasureModelContent): ConflictChunk[];
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getMeasureConflicts = exports.getTwinConflicts = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
/**
|
|
9
|
+
* Return every conflicts between the mappings of models and a new model
|
|
10
|
+
*
|
|
11
|
+
* @param modelType The target model type
|
|
12
|
+
* @param models The already present models used as comparison source
|
|
13
|
+
* @param additional The new model
|
|
14
|
+
* @param mappingsPath The object path to the mappings
|
|
15
|
+
* @param modelIdPath The object path to the model ID
|
|
16
|
+
* @returns An array of ConflictChunk between current models and the new model
|
|
17
|
+
*/
|
|
18
|
+
function getModelConflicts(modelType, models, additional, mappingsPath, modelIdPath) {
|
|
19
|
+
const conflicts = [];
|
|
20
|
+
for (const model of models) {
|
|
21
|
+
const baseMappings = lodash_1.default.get(model, mappingsPath);
|
|
22
|
+
const updatedMappings = JSON.parse(JSON.stringify(baseMappings));
|
|
23
|
+
lodash_1.default.merge(updatedMappings, lodash_1.default.get(additional, mappingsPath));
|
|
24
|
+
const mappingsConflict = findConflicts(baseMappings, updatedMappings, mappingsPath);
|
|
25
|
+
if (mappingsConflict.length > 0) {
|
|
26
|
+
conflicts.push({
|
|
27
|
+
conflicts: mappingsConflict,
|
|
28
|
+
modelType: modelType,
|
|
29
|
+
newModel: lodash_1.default.get(additional, modelIdPath),
|
|
30
|
+
sourceModel: lodash_1.default.get(model, modelIdPath),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return conflicts;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Return every conflicts between the mappings of twins and a new twin model
|
|
38
|
+
*
|
|
39
|
+
* @param twinType The target twin type
|
|
40
|
+
* @param models The already present twin models
|
|
41
|
+
* @param additional The new asset
|
|
42
|
+
* @returns An array of ConflictChunk between current twins and the new twin
|
|
43
|
+
*/
|
|
44
|
+
function getTwinConflicts(twinType, models, additional) {
|
|
45
|
+
const metadataPath = twinType + ".metadataMappings";
|
|
46
|
+
const modelIdPath = twinType + ".model";
|
|
47
|
+
return getModelConflicts(twinType, models, additional, metadataPath, modelIdPath);
|
|
48
|
+
}
|
|
49
|
+
exports.getTwinConflicts = getTwinConflicts;
|
|
50
|
+
/**
|
|
51
|
+
* Return every conflicts between the mappings of measure models and a new measure model
|
|
52
|
+
*
|
|
53
|
+
* @param measures The already present measure models
|
|
54
|
+
* @param additional The new measure
|
|
55
|
+
* @returns An array of ConflictChunk between current measures and the new measure
|
|
56
|
+
*/
|
|
57
|
+
function getMeasureConflicts(measures, additional) {
|
|
58
|
+
const modelType = "measure";
|
|
59
|
+
const mappingsPath = "measure.valuesMappings";
|
|
60
|
+
const modelIdPath = "measure.type";
|
|
61
|
+
return getModelConflicts(modelType, measures, additional, mappingsPath, modelIdPath);
|
|
62
|
+
}
|
|
63
|
+
exports.getMeasureConflicts = getMeasureConflicts;
|
|
64
|
+
/**
|
|
65
|
+
* Find every conflicts between two objects.
|
|
66
|
+
* WARNING: "undefined" type of conflicts are not registered
|
|
67
|
+
* @param sourceObject The source object used to compare
|
|
68
|
+
* @param objectToCompare The target object to compare to
|
|
69
|
+
* @param basePath Optional path to be added before conflicts paths
|
|
70
|
+
* @returns An array of MappingsConflict
|
|
71
|
+
*/
|
|
72
|
+
function findConflicts(sourceObject, objectToCompare, basePath = "") {
|
|
73
|
+
if (sourceObject === objectToCompare) {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
if (lodash_1.default.isEqual(sourceObject, objectToCompare)) {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
const conflicts = [];
|
|
80
|
+
function compareObjects(source, toCompare, path = "") {
|
|
81
|
+
//Loop over the source object properties of distinct depth level
|
|
82
|
+
lodash_1.default.forOwn(source, (value, key) => {
|
|
83
|
+
//Construct full path from the previous path and the current key
|
|
84
|
+
const fullPath = path ? `${path}.${key}` : key;
|
|
85
|
+
//Check the object to compare key availibility, if there's nothing return to continue on the next property
|
|
86
|
+
if (!lodash_1.default.has(toCompare, key)) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
//If the property to compare is an object, recursively call the method to advance on the next depth level
|
|
90
|
+
if (lodash_1.default.isObject(value) && lodash_1.default.isObject(toCompare[key])) {
|
|
91
|
+
compareObjects(value, toCompare[key], fullPath);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
//If the property to compare is not an object and is not equal to the source value, add the current/new value with it's corresponding full path
|
|
95
|
+
if (!lodash_1.default.isEqual(value, toCompare[key])) {
|
|
96
|
+
conflicts.push({
|
|
97
|
+
currentType: source[key],
|
|
98
|
+
newType: toCompare[key],
|
|
99
|
+
path: fullPath,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
compareObjects(sourceObject, objectToCompare, basePath);
|
|
105
|
+
return conflicts;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=ModelsConflicts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelsConflicts.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelsConflicts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ControllerDefinition, KuzzleRequest } from "kuzzle";
|
|
2
2
|
import { ModelService } from "./ModelService";
|
|
3
|
-
import { ApiModelWriteAssetResult, ApiModelWriteDeviceResult, ApiModelWriteMeasureResult, ApiModelDeleteAssetResult, ApiModelDeleteDeviceResult, ApiModelDeleteMeasureResult, ApiModelListAssetsResult, ApiModelListDevicesResult, ApiModelListMeasuresResult, ApiModelGetAssetResult, ApiModelGetDeviceResult, ApiModelGetMeasureResult } from "./types/ModelApi";
|
|
3
|
+
import { ApiModelWriteAssetResult, ApiModelWriteDeviceResult, ApiModelWriteMeasureResult, ApiModelUpdateAssetResult, ApiModelDeleteAssetResult, ApiModelDeleteDeviceResult, ApiModelDeleteMeasureResult, ApiModelListAssetsResult, ApiModelListDevicesResult, ApiModelListMeasuresResult, ApiModelGetAssetResult, ApiModelGetDeviceResult, ApiModelGetMeasureResult } from "./types/ModelApi";
|
|
4
4
|
export declare class ModelsController {
|
|
5
5
|
private modelService;
|
|
6
6
|
definition: ControllerDefinition;
|
|
@@ -17,4 +17,5 @@ export declare class ModelsController {
|
|
|
17
17
|
listAssets(request: KuzzleRequest): Promise<ApiModelListAssetsResult>;
|
|
18
18
|
listDevices(): Promise<ApiModelListDevicesResult>;
|
|
19
19
|
listMeasures(): Promise<ApiModelListMeasuresResult>;
|
|
20
|
+
updateAsset(request: KuzzleRequest): Promise<ApiModelUpdateAssetResult>;
|
|
20
21
|
}
|
|
@@ -44,6 +44,12 @@ class ModelsController {
|
|
|
44
44
|
handler: this.listMeasures.bind(this),
|
|
45
45
|
http: [{ path: "device-manager/models/measures", verb: "get" }],
|
|
46
46
|
},
|
|
47
|
+
updateAsset: {
|
|
48
|
+
handler: this.updateAsset.bind(this),
|
|
49
|
+
http: [
|
|
50
|
+
{ path: "device-manager/models/assets/:model", verb: "patch" },
|
|
51
|
+
],
|
|
52
|
+
},
|
|
47
53
|
writeAsset: {
|
|
48
54
|
handler: this.writeAsset.bind(this),
|
|
49
55
|
http: [{ path: "device-manager/models/assets", verb: "post" }],
|
|
@@ -81,7 +87,10 @@ class ModelsController {
|
|
|
81
87
|
const metadataMappings = request.getBodyObject("metadataMappings", {});
|
|
82
88
|
const defaultValues = request.getBodyObject("defaultValues", {});
|
|
83
89
|
const measures = request.getBodyArray("measures", []);
|
|
84
|
-
const
|
|
90
|
+
const metadataDetails = request.getBodyObject("metadataDetails", {});
|
|
91
|
+
const metadataGroups = request.getBodyObject("metadataGroups", {});
|
|
92
|
+
const tooltipModels = request.getBodyObject("tooltipModels", {});
|
|
93
|
+
const assetModel = await this.modelService.writeAsset(engineGroup, model, metadataMappings, defaultValues, metadataDetails, metadataGroups, measures, tooltipModels);
|
|
85
94
|
return assetModel;
|
|
86
95
|
}
|
|
87
96
|
async writeDevice(request) {
|
|
@@ -89,13 +98,16 @@ class ModelsController {
|
|
|
89
98
|
const metadataMappings = request.getBodyObject("metadataMappings", {});
|
|
90
99
|
const defaultValues = request.getBodyObject("defaultValues", {});
|
|
91
100
|
const measures = request.getBodyArray("measures");
|
|
92
|
-
const
|
|
101
|
+
const metadataDetails = request.getBodyObject("metadataDetails", {});
|
|
102
|
+
const metadataGroups = request.getBodyObject("metadataGroups", {});
|
|
103
|
+
const deviceModel = await this.modelService.writeDevice(model, metadataMappings, defaultValues, metadataDetails, metadataGroups, measures);
|
|
93
104
|
return deviceModel;
|
|
94
105
|
}
|
|
95
106
|
async writeMeasure(request) {
|
|
96
107
|
const type = request.getBodyString("type");
|
|
97
108
|
const valuesMappings = request.getBodyObject("valuesMappings");
|
|
98
|
-
const
|
|
109
|
+
const valuesDetails = request.getBodyObject("valuesDetails", {});
|
|
110
|
+
const measureModel = await this.modelService.writeMeasure(type, valuesMappings, valuesDetails);
|
|
99
111
|
return measureModel;
|
|
100
112
|
}
|
|
101
113
|
async deleteAsset(request) {
|
|
@@ -132,6 +144,18 @@ class ModelsController {
|
|
|
132
144
|
total: models.length,
|
|
133
145
|
};
|
|
134
146
|
}
|
|
147
|
+
async updateAsset(request) {
|
|
148
|
+
const engineGroup = request.getString("engineGroup");
|
|
149
|
+
const model = request.getString("model");
|
|
150
|
+
const metadataMappings = request.getBodyObject("metadataMappings", {});
|
|
151
|
+
const defaultValues = request.getBodyObject("defaultValues", {});
|
|
152
|
+
const measures = request.getBodyArray("measures", []);
|
|
153
|
+
const metadataDetails = request.getBodyObject("metadataDetails", {});
|
|
154
|
+
const metadataGroups = request.getBodyObject("metadataGroups", {});
|
|
155
|
+
const tooltipModels = request.getBodyObject("tooltipModels", {});
|
|
156
|
+
const updatedAssetModel = await this.modelService.updateAsset(engineGroup, model, metadataMappings, defaultValues, metadataDetails, metadataGroups, measures, tooltipModels, request);
|
|
157
|
+
return updatedAssetModel;
|
|
158
|
+
}
|
|
135
159
|
}
|
|
136
160
|
exports.ModelsController = ModelsController;
|
|
137
161
|
//# sourceMappingURL=ModelsController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelsController.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelsController.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ModelsController.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelsController.ts"],"names":[],"mappings":";;;AAmBA,MAAa,gBAAgB;IAK3B,YAAY,YAA0B;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,UAAU,GAAG;YAChB,OAAO,EAAE;gBACP,WAAW,EAAE;oBACX,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;iBACrE;gBACD,YAAY,EAAE;oBACZ,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;iBACtE;gBACD,aAAa,EAAE;oBACb,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACtC,IAAI,EAAE;wBACJ,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC/D;iBACF;gBACD,QAAQ,EAAE;oBACR,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBACjC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBAClE;gBACD,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,mCAAmC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBACnE;gBACD,UAAU,EAAE;oBACV,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;oBACnC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBACpE;gBACD,UAAU,EAAE;oBACV,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;oBACnC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBAC9D;gBACD,WAAW,EAAE;oBACX,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBAC/D;gBACD,YAAY,EAAE;oBACZ,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iBAChE;gBACD,WAAW,EAAE;oBACX,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpC,IAAI,EAAE;wBACJ,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,OAAO,EAAE;qBAC/D;iBACF;gBACD,UAAU,EAAE;oBACV,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;oBACnC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iBAC/D;gBACD,WAAW,EAAE;oBACX,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iBAChE;gBACD,YAAY,EAAE;oBACZ,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iBACjE;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAsB;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAErD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAExE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAsB;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE7D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE9D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAEjE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CACnD,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,cAAc,EACd,QAAQ,EACR,aAAa,CACd,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAsB;QAEtB,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CACrD,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,cAAc,EACd,QAAQ,CACT,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAsB;QAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CACvD,IAAI,EACJ,cAAc,EACd,aAAa,CACd,CAAC;QAEF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAsB;QAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE5B,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAsB;QAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE5B,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAsB;QAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE5B,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE9D,OAAO;YACL,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAErD,OAAO;YACL,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QAEtD,OAAO;YACL,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAsB;QAEtB,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAEjE,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAC3D,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,cAAc,EACd,QAAQ,EACR,aAAa,EACb,OAAO,CACR,CAAC;QAEF,OAAO,iBAAiB,CAAC;IAC3B,CAAC;CACF;AA3OD,4CA2OC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { JSONObject } from "kuzzle-sdk";
|
|
2
1
|
import { DeviceManagerPlugin } from "../plugin";
|
|
3
2
|
import { NamedMeasures } from "../decoder";
|
|
4
3
|
import { MeasureDefinition } from "../measure";
|
|
4
|
+
import { MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
|
|
5
|
+
import { JSONObject } from "kuzzle-sdk";
|
|
5
6
|
export declare class ModelsRegister {
|
|
6
7
|
private config;
|
|
7
8
|
private context;
|
|
@@ -11,8 +12,32 @@ export declare class ModelsRegister {
|
|
|
11
12
|
private get sdk();
|
|
12
13
|
init(plugin: DeviceManagerPlugin): void;
|
|
13
14
|
loadModels(): Promise<void>;
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Registers an asset model.
|
|
17
|
+
*
|
|
18
|
+
* @param engineGroup - The engine group name.
|
|
19
|
+
* @param model - The name of the asset model, which must be in PascalCase.
|
|
20
|
+
* @param measures - The measures associated with this asset model.
|
|
21
|
+
* @param metadataMappings - The metadata mappings for the model, defaults to an empty object.
|
|
22
|
+
* @param defaultMetadata - The default metadata values for the model, defaults to an empty object.
|
|
23
|
+
* @param metadataDetails - Optional detailed metadata descriptions and localizations.
|
|
24
|
+
* @param metadataGroups - Optional groups for organizing metadata, with localizations.
|
|
25
|
+
* @param tooltipModels - Optional model list for tooltip, containing labels and tooltip content.
|
|
26
|
+
* @throws PluginImplementationError if the model name is not in PascalCase.
|
|
27
|
+
*/
|
|
28
|
+
registerAsset(engineGroup: string, model: string, measures: NamedMeasures, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups, tooltipModels?: TooltipModels): void;
|
|
29
|
+
/**
|
|
30
|
+
* Registers a device model.
|
|
31
|
+
*
|
|
32
|
+
* @param model - The name of the device model, which must be in PascalCase.
|
|
33
|
+
* @param measures - The measures associated with this device model.
|
|
34
|
+
* @param metadataMappings - The metadata mappings for the model, defaults to an empty object.
|
|
35
|
+
* @param defaultMetadata - The default metadata values for the model, defaults to an empty object.
|
|
36
|
+
* @param metadataDetails - Optional detailed metadata descriptions and localizations.
|
|
37
|
+
* @param metadataGroups - Optional groups for organizing metadata, with localizations.
|
|
38
|
+
* @throws PluginImplementationError if the model name is not in PascalCase.
|
|
39
|
+
*/
|
|
40
|
+
registerDevice(model: string, measures: NamedMeasures, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups): void;
|
|
16
41
|
registerMeasure(type: string, measureDefinition: MeasureDefinition): void;
|
|
17
42
|
private load;
|
|
18
43
|
}
|
|
@@ -25,28 +25,73 @@ class ModelsRegister {
|
|
|
25
25
|
]);
|
|
26
26
|
await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Registers an asset model.
|
|
30
|
+
*
|
|
31
|
+
* @param engineGroup - The engine group name.
|
|
32
|
+
* @param model - The name of the asset model, which must be in PascalCase.
|
|
33
|
+
* @param measures - The measures associated with this asset model.
|
|
34
|
+
* @param metadataMappings - The metadata mappings for the model, defaults to an empty object.
|
|
35
|
+
* @param defaultMetadata - The default metadata values for the model, defaults to an empty object.
|
|
36
|
+
* @param metadataDetails - Optional detailed metadata descriptions and localizations.
|
|
37
|
+
* @param metadataGroups - Optional groups for organizing metadata, with localizations.
|
|
38
|
+
* @param tooltipModels - Optional model list for tooltip, containing labels and tooltip content.
|
|
39
|
+
* @throws PluginImplementationError if the model name is not in PascalCase.
|
|
40
|
+
*/
|
|
41
|
+
registerAsset(engineGroup, model, measures, metadataMappings = {}, defaultMetadata = {}, metadataDetails = {}, metadataGroups = {}, tooltipModels = {}) {
|
|
29
42
|
if (kuzzle_1.Inflector.pascalCase(model) !== model) {
|
|
30
43
|
throw new kuzzle_1.PluginImplementationError(`Asset model "${model}" must be PascalCase`);
|
|
31
44
|
}
|
|
45
|
+
// Construct and push the new asset model to the assetModels array
|
|
32
46
|
this.assetModels.push({
|
|
33
|
-
asset: {
|
|
47
|
+
asset: {
|
|
48
|
+
defaultMetadata,
|
|
49
|
+
measures,
|
|
50
|
+
metadataDetails,
|
|
51
|
+
metadataGroups,
|
|
52
|
+
metadataMappings,
|
|
53
|
+
model,
|
|
54
|
+
tooltipModels,
|
|
55
|
+
},
|
|
34
56
|
engineGroup,
|
|
35
57
|
type: "asset",
|
|
36
58
|
});
|
|
37
59
|
}
|
|
38
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Registers a device model.
|
|
62
|
+
*
|
|
63
|
+
* @param model - The name of the device model, which must be in PascalCase.
|
|
64
|
+
* @param measures - The measures associated with this device model.
|
|
65
|
+
* @param metadataMappings - The metadata mappings for the model, defaults to an empty object.
|
|
66
|
+
* @param defaultMetadata - The default metadata values for the model, defaults to an empty object.
|
|
67
|
+
* @param metadataDetails - Optional detailed metadata descriptions and localizations.
|
|
68
|
+
* @param metadataGroups - Optional groups for organizing metadata, with localizations.
|
|
69
|
+
* @throws PluginImplementationError if the model name is not in PascalCase.
|
|
70
|
+
*/
|
|
71
|
+
registerDevice(model, measures, metadataMappings = {}, defaultMetadata = {}, metadataDetails = {}, metadataGroups = {}) {
|
|
39
72
|
if (kuzzle_1.Inflector.pascalCase(model) !== model) {
|
|
40
73
|
throw new kuzzle_1.PluginImplementationError(`Device model "${model}" must be PascalCase`);
|
|
41
74
|
}
|
|
75
|
+
// Construct and push the new device model to the deviceModels array
|
|
42
76
|
this.deviceModels.push({
|
|
43
|
-
device: {
|
|
77
|
+
device: {
|
|
78
|
+
defaultMetadata,
|
|
79
|
+
measures,
|
|
80
|
+
metadataDetails,
|
|
81
|
+
metadataGroups,
|
|
82
|
+
metadataMappings,
|
|
83
|
+
model,
|
|
84
|
+
},
|
|
44
85
|
type: "device",
|
|
45
86
|
});
|
|
46
87
|
}
|
|
47
88
|
registerMeasure(type, measureDefinition) {
|
|
48
89
|
this.measureModels.push({
|
|
49
|
-
measure: {
|
|
90
|
+
measure: {
|
|
91
|
+
type,
|
|
92
|
+
valuesDetails: measureDefinition.valuesDetails,
|
|
93
|
+
valuesMappings: measureDefinition.valuesMappings,
|
|
94
|
+
},
|
|
50
95
|
type: "measure",
|
|
51
96
|
});
|
|
52
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelsRegister.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelsRegister.ts"],"names":[],"mappings":";;;AAAA,mCAA6E;
|
|
1
|
+
{"version":3,"file":"ModelsRegister.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelsRegister.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,10 @@ exports.modelsMappings = {
|
|
|
20
20
|
dynamic: "false",
|
|
21
21
|
properties: {},
|
|
22
22
|
},
|
|
23
|
+
valuesDetails: {
|
|
24
|
+
dynamic: "false",
|
|
25
|
+
properties: {},
|
|
26
|
+
},
|
|
23
27
|
},
|
|
24
28
|
},
|
|
25
29
|
/**
|
|
@@ -36,12 +40,24 @@ exports.modelsMappings = {
|
|
|
36
40
|
dynamic: "false",
|
|
37
41
|
properties: {},
|
|
38
42
|
},
|
|
43
|
+
metadataDetails: {
|
|
44
|
+
dynamic: "false",
|
|
45
|
+
properties: {},
|
|
46
|
+
},
|
|
47
|
+
metadataGroups: {
|
|
48
|
+
dynamic: "false",
|
|
49
|
+
properties: {},
|
|
50
|
+
},
|
|
39
51
|
measures: {
|
|
40
52
|
properties: {
|
|
41
53
|
type: { type: "keyword" },
|
|
42
54
|
name: { type: "keyword" },
|
|
43
55
|
},
|
|
44
56
|
},
|
|
57
|
+
tooltipModels: {
|
|
58
|
+
dynamic: "false",
|
|
59
|
+
properties: {},
|
|
60
|
+
},
|
|
45
61
|
},
|
|
46
62
|
},
|
|
47
63
|
/**
|
|
@@ -58,6 +74,14 @@ exports.modelsMappings = {
|
|
|
58
74
|
dynamic: "false",
|
|
59
75
|
properties: {},
|
|
60
76
|
},
|
|
77
|
+
metadataDetails: {
|
|
78
|
+
dynamic: "false",
|
|
79
|
+
properties: {},
|
|
80
|
+
},
|
|
81
|
+
metadataGroups: {
|
|
82
|
+
dynamic: "false",
|
|
83
|
+
properties: {},
|
|
84
|
+
},
|
|
61
85
|
measures: {
|
|
62
86
|
properties: {
|
|
63
87
|
type: { type: "keyword" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelsMappings.js","sourceRoot":"","sources":["../../../../../lib/modules/model/collections/modelsMappings.ts"],"names":[],"mappings":";;;AAEA,8BAA8B;AAE9B;;GAEG;AACU,QAAA,cAAc,GAAuB;IAChD,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACzB,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAEhC;;WAEG;QACH,OAAO,EAAE;YACP,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACzB,cAAc,EAAE;oBACd,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;aACF;SACF;QAED;;WAEG;QACH,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,gBAAgB,EAAE;oBAChB,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,eAAe,EAAE;oBACf,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,QAAQ,EAAE;oBACR,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;qBAC1B;iBACF;aACF;SACF;QAED;;WAEG;QACH,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,gBAAgB,EAAE;oBAChB,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,eAAe,EAAE;oBACf,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,QAAQ,EAAE;oBACR,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;qBAC1B;iBACF;aACF;SACF;KACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"modelsMappings.js","sourceRoot":"","sources":["../../../../../lib/modules/model/collections/modelsMappings.ts"],"names":[],"mappings":";;;AAEA,8BAA8B;AAE9B;;GAEG;AACU,QAAA,cAAc,GAAuB;IAChD,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACzB,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAEhC;;WAEG;QACH,OAAO,EAAE;YACP,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACzB,cAAc,EAAE;oBACd,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,aAAa,EAAE;oBACb,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;aACF;SACF;QAED;;WAEG;QACH,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,gBAAgB,EAAE;oBAChB,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,eAAe,EAAE;oBACf,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,eAAe,EAAE;oBACf,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,cAAc,EAAE;oBACd,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,QAAQ,EAAE;oBACR,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;qBAC1B;iBACF;gBACD,aAAa,EAAE;oBACb,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;aACF;SACF;QAED;;WAEG;QACH,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,gBAAgB,EAAE;oBAChB,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,eAAe,EAAE;oBACf,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,eAAe,EAAE;oBACf,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,cAAc,EAAE;oBACd,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,EAAE;iBACf;gBACD,QAAQ,EAAE;oBACR,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;qBAC1B;iBACF;aACF;SACF;KACF;CACF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { JSONObject, KDocument } from "kuzzle-sdk";
|
|
2
|
-
import { AssetModelContent, DeviceModelContent, MeasureModelContent } from "./ModelContent";
|
|
2
|
+
import { AssetModelContent, DeviceModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./ModelContent";
|
|
3
|
+
import { MeasureValuesDetails } from "../../measure/types/MeasureDefinition";
|
|
3
4
|
interface ModelsControllerRequest {
|
|
4
5
|
controller: "device-manager/models";
|
|
5
6
|
}
|
|
@@ -24,9 +25,12 @@ export interface ApiModelWriteAssetRequest extends ModelsControllerRequest {
|
|
|
24
25
|
body: {
|
|
25
26
|
engineGroup: string;
|
|
26
27
|
model: string;
|
|
27
|
-
|
|
28
|
+
metadataDetails?: MetadataDetails;
|
|
29
|
+
metadataGroups?: MetadataGroups;
|
|
30
|
+
metadataMappings?: MetadataMappings;
|
|
28
31
|
defaultValues?: JSONObject;
|
|
29
32
|
measures?: AssetModelContent["asset"]["measures"];
|
|
33
|
+
tooltipModels?: TooltipModels;
|
|
30
34
|
};
|
|
31
35
|
}
|
|
32
36
|
export type ApiModelWriteAssetResult = KDocument<AssetModelContent>;
|
|
@@ -34,7 +38,9 @@ export interface ApiModelWriteDeviceRequest extends ModelsControllerRequest {
|
|
|
34
38
|
action: "writeDevice";
|
|
35
39
|
body: {
|
|
36
40
|
model: string;
|
|
37
|
-
|
|
41
|
+
metadataDetails?: MetadataDetails;
|
|
42
|
+
metadataGroups?: MetadataGroups;
|
|
43
|
+
metadataMappings?: MetadataMappings;
|
|
38
44
|
defaultValues?: JSONObject;
|
|
39
45
|
measures: DeviceModelContent["device"]["measures"];
|
|
40
46
|
};
|
|
@@ -45,9 +51,24 @@ export interface ApiModelWriteMeasureRequest extends ModelsControllerRequest {
|
|
|
45
51
|
body: {
|
|
46
52
|
type: string;
|
|
47
53
|
valuesMappings: JSONObject;
|
|
54
|
+
valuesDetails?: MeasureValuesDetails;
|
|
48
55
|
};
|
|
49
56
|
}
|
|
50
57
|
export type ApiModelWriteMeasureResult = KDocument<MeasureModelContent>;
|
|
58
|
+
export interface ApiModelUpdateAssetRequest extends ModelsControllerRequest {
|
|
59
|
+
action: "updateAsset";
|
|
60
|
+
engineGroup: string;
|
|
61
|
+
model: string;
|
|
62
|
+
body: {
|
|
63
|
+
metadataDetails?: MetadataDetails;
|
|
64
|
+
metadataGroups?: MetadataGroups;
|
|
65
|
+
metadataMappings?: MetadataMappings;
|
|
66
|
+
defaultValues?: JSONObject;
|
|
67
|
+
measures?: AssetModelContent["asset"]["measures"];
|
|
68
|
+
tooltipModels?: TooltipModels;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
export type ApiModelUpdateAssetResult = KDocument<AssetModelContent>;
|
|
51
72
|
export interface ApiModelDeleteAssetRequest extends ModelsControllerRequest {
|
|
52
73
|
action: "deleteAsset";
|
|
53
74
|
_id: string;
|