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
|
@@ -30,6 +30,15 @@ exports.measuresMappings = {
|
|
|
30
30
|
// populated with asset models metadata mappings
|
|
31
31
|
},
|
|
32
32
|
},
|
|
33
|
+
groups: {
|
|
34
|
+
properties: {
|
|
35
|
+
id: {
|
|
36
|
+
type: "keyword",
|
|
37
|
+
fields: { text: { type: "text" } },
|
|
38
|
+
},
|
|
39
|
+
date: { type: "date" },
|
|
40
|
+
},
|
|
41
|
+
},
|
|
33
42
|
},
|
|
34
43
|
},
|
|
35
44
|
/**
|
|
@@ -39,6 +48,11 @@ exports.measuresMappings = {
|
|
|
39
48
|
properties: {
|
|
40
49
|
type: { type: "keyword" },
|
|
41
50
|
measureName: { type: "keyword" },
|
|
51
|
+
deviceMetadata: {
|
|
52
|
+
properties: {
|
|
53
|
+
// populated with device models metadata mappings
|
|
54
|
+
},
|
|
55
|
+
},
|
|
42
56
|
payloadUuids: { type: "keyword" },
|
|
43
57
|
deviceModel: { type: "keyword" },
|
|
44
58
|
reference: { type: "keyword" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measuresMappings.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/collections/measuresMappings.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,gBAAgB,GAAG;IAC9B,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAEzB,MAAM,EAAE;YACN,UAAU,EAAE;YACV,yCAAyC;aAC1C;SACF;QAED;;WAEG;QACH,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAE5B,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAChC,QAAQ,EAAE;oBACR,UAAU,EAAE;oBACV,gDAAgD;qBACjD;iBACF;aACF;SACF;QAED;;WAEG;QACH,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEzB,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEhC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEjC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEhC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAE9B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aACzB;SACF;KACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"measuresMappings.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/collections/measuresMappings.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,gBAAgB,GAAG;IAC9B,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAEzB,MAAM,EAAE;YACN,UAAU,EAAE;YACV,yCAAyC;aAC1C;SACF;QAED;;WAEG;QACH,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAE5B,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAChC,QAAQ,EAAE;oBACR,UAAU,EAAE;oBACV,gDAAgD;qBACjD;iBACF;gBACD,MAAM,EAAE;oBACN,UAAU,EAAE;wBACV,EAAE,EAAE;4BACF,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;yBACnC;wBACD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;qBACvB;iBACF;aACF;SACF;QAED;;WAEG;QACH,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEzB,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEhC,cAAc,EAAE;oBACd,UAAU,EAAE;oBACV,iDAAiD;qBAClD;iBACF;gBAED,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEjC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAEhC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAE9B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aACzB;SACF;KACF;CACF,CAAC"}
|
|
@@ -3,5 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.batteryMeasureDefinition = void 0;
|
|
4
4
|
exports.batteryMeasureDefinition = {
|
|
5
5
|
valuesMappings: { battery: { type: "integer" } },
|
|
6
|
+
valuesDetails: {
|
|
7
|
+
battery: {
|
|
8
|
+
en: {
|
|
9
|
+
friendlyName: "Battery level",
|
|
10
|
+
unit: "%",
|
|
11
|
+
},
|
|
12
|
+
fr: {
|
|
13
|
+
friendlyName: "Niveau de batterie",
|
|
14
|
+
unit: "%",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
6
18
|
};
|
|
7
19
|
//# sourceMappingURL=BatteryMeasure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatteryMeasure.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/measures/BatteryMeasure.ts"],"names":[],"mappings":";;;AAQa,QAAA,wBAAwB,GAAsB;IACzD,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"BatteryMeasure.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/measures/BatteryMeasure.ts"],"names":[],"mappings":";;;AAQa,QAAA,wBAAwB,GAAsB;IACzD,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAEhD,aAAa,EAAE;QACb,OAAO,EAAE;YACP,EAAE,EAAE;gBACF,YAAY,EAAE,eAAe;gBAC7B,IAAI,EAAE,GAAG;aACV;YACD,EAAE,EAAE;gBACF,YAAY,EAAE,oBAAoB;gBAClC,IAAI,EAAE,GAAG;aACV;SACF;KACF;CACF,CAAC"}
|
|
@@ -3,5 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.humidityMeasureDefinition = void 0;
|
|
4
4
|
exports.humidityMeasureDefinition = {
|
|
5
5
|
valuesMappings: { humidity: { type: "float" } },
|
|
6
|
+
valuesDetails: {
|
|
7
|
+
humidity: {
|
|
8
|
+
en: {
|
|
9
|
+
friendlyName: "Relative humidity",
|
|
10
|
+
unit: "%",
|
|
11
|
+
},
|
|
12
|
+
fr: {
|
|
13
|
+
friendlyName: "Humidité relative",
|
|
14
|
+
unit: "%",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
6
18
|
};
|
|
7
19
|
//# sourceMappingURL=HumidityMeasure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HumidityMeasure.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/measures/HumidityMeasure.ts"],"names":[],"mappings":";;;AAQa,QAAA,yBAAyB,GAAsB;IAC1D,cAAc,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"HumidityMeasure.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/measures/HumidityMeasure.ts"],"names":[],"mappings":";;;AAQa,QAAA,yBAAyB,GAAsB;IAC1D,cAAc,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC/C,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,EAAE,EAAE;gBACF,YAAY,EAAE,mBAAmB;gBACjC,IAAI,EAAE,GAAG;aACV;YACD,EAAE,EAAE;gBACF,YAAY,EAAE,mBAAmB;gBACjC,IAAI,EAAE,GAAG;aACV;SACF;KACF;CACF,CAAC"}
|
|
@@ -3,5 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.movementMeasureDefinition = void 0;
|
|
4
4
|
exports.movementMeasureDefinition = {
|
|
5
5
|
valuesMappings: { movement: { type: "boolean" } },
|
|
6
|
+
valuesDetails: {
|
|
7
|
+
movement: {
|
|
8
|
+
en: {
|
|
9
|
+
friendlyName: "Movement detection",
|
|
10
|
+
},
|
|
11
|
+
fr: {
|
|
12
|
+
friendlyName: "Détection de mouvement",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
6
16
|
};
|
|
7
17
|
//# sourceMappingURL=MovementMeasure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MovementMeasure.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/measures/MovementMeasure.ts"],"names":[],"mappings":";;;AAQa,QAAA,yBAAyB,GAAsB;IAC1D,cAAc,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"MovementMeasure.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/measures/MovementMeasure.ts"],"names":[],"mappings":";;;AAQa,QAAA,yBAAyB,GAAsB;IAC1D,cAAc,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IACjD,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,EAAE,EAAE;gBACF,YAAY,EAAE,oBAAoB;aACnC;YACD,EAAE,EAAE;gBACF,YAAY,EAAE,wBAAwB;aACvC;SACF;KACF;CACF,CAAC"}
|
|
@@ -7,5 +7,27 @@ exports.positionMeasureDefinition = {
|
|
|
7
7
|
accuracy: { type: "float" },
|
|
8
8
|
altitude: { type: "float" },
|
|
9
9
|
},
|
|
10
|
+
valuesDetails: {
|
|
11
|
+
position: {
|
|
12
|
+
en: {
|
|
13
|
+
friendlyName: "Localization",
|
|
14
|
+
unit: "(lat,lon)",
|
|
15
|
+
},
|
|
16
|
+
fr: {
|
|
17
|
+
friendlyName: "Localisation",
|
|
18
|
+
unit: "(lat,lon)",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
altitude: {
|
|
22
|
+
en: {
|
|
23
|
+
friendlyName: "Altitude",
|
|
24
|
+
unit: "m",
|
|
25
|
+
},
|
|
26
|
+
fr: {
|
|
27
|
+
friendlyName: "Altitude",
|
|
28
|
+
unit: "m",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
10
32
|
};
|
|
11
33
|
//# sourceMappingURL=PositionMeasure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PositionMeasure.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/measures/PositionMeasure.ts"],"names":[],"mappings":";;;AAaa,QAAA,yBAAyB,GAAsB;IAC1D,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;QAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC5B;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"PositionMeasure.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/measures/PositionMeasure.ts"],"names":[],"mappings":";;;AAaa,QAAA,yBAAyB,GAAsB;IAC1D,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;QAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC5B;IACD,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,EAAE,EAAE;gBACF,YAAY,EAAE,cAAc;gBAC5B,IAAI,EAAE,WAAW;aAClB;YACD,EAAE,EAAE;gBACF,YAAY,EAAE,cAAc;gBAC5B,IAAI,EAAE,WAAW;aAClB;SACF;QACD,QAAQ,EAAE;YACR,EAAE,EAAE;gBACF,YAAY,EAAE,UAAU;gBACxB,IAAI,EAAE,GAAG;aACV;YACD,EAAE,EAAE;gBACF,YAAY,EAAE,UAAU;gBACxB,IAAI,EAAE,GAAG;aACV;SACF;KACF;CACF,CAAC"}
|
|
@@ -3,5 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.temperatureMeasureDefinition = void 0;
|
|
4
4
|
exports.temperatureMeasureDefinition = {
|
|
5
5
|
valuesMappings: { temperature: { type: "float" } },
|
|
6
|
+
valuesDetails: {
|
|
7
|
+
temperature: {
|
|
8
|
+
en: {
|
|
9
|
+
friendlyName: "Temperature",
|
|
10
|
+
unit: "°C",
|
|
11
|
+
},
|
|
12
|
+
fr: {
|
|
13
|
+
friendlyName: "Température",
|
|
14
|
+
unit: "°C",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
6
18
|
};
|
|
7
19
|
//# sourceMappingURL=TemperatureMeasure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemperatureMeasure.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/measures/TemperatureMeasure.ts"],"names":[],"mappings":";;;AAQa,QAAA,4BAA4B,GAAsB;IAC7D,cAAc,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"TemperatureMeasure.js","sourceRoot":"","sources":["../../../../../lib/modules/measure/measures/TemperatureMeasure.ts"],"names":[],"mappings":";;;AAQa,QAAA,4BAA4B,GAAsB;IAC7D,cAAc,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAClD,aAAa,EAAE;QACb,WAAW,EAAE;YACX,EAAE,EAAE;gBACF,YAAY,EAAE,aAAa;gBAC3B,IAAI,EAAE,IAAI;aACX;YACD,EAAE,EAAE;gBACF,YAAY,EAAE,aAAa;gBAC3B,IAAI,EAAE,IAAI;aACX;SACF;KACF;CACF,CAAC"}
|
|
@@ -1,15 +1,40 @@
|
|
|
1
1
|
import { JSONObject } from "kuzzle-sdk";
|
|
2
|
+
interface MeasureLocales {
|
|
3
|
+
[localeString: string]: {
|
|
4
|
+
friendlyName: string;
|
|
5
|
+
unit?: string;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export interface MeasureValuesDetails {
|
|
9
|
+
[valueName: string]: MeasureLocales;
|
|
10
|
+
}
|
|
2
11
|
/**
|
|
3
12
|
* Represents a measure definition registered by the Device Manager
|
|
4
13
|
*
|
|
5
14
|
* @example
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
15
|
+
*{
|
|
16
|
+
* valuesMappings: { temperature: { type: "float" } },
|
|
17
|
+
* valuesDetails: {
|
|
18
|
+
* temperature: {
|
|
19
|
+
* en: {
|
|
20
|
+
* friendlyName: "Temperature",
|
|
21
|
+
* unit: "°C",
|
|
22
|
+
* },
|
|
23
|
+
* fr: {
|
|
24
|
+
* friendlyName: "Température",
|
|
25
|
+
* unit: "°C",
|
|
26
|
+
* },
|
|
27
|
+
* },
|
|
28
|
+
* },
|
|
29
|
+
*}
|
|
9
30
|
*/
|
|
10
31
|
export interface MeasureDefinition {
|
|
11
32
|
/**
|
|
12
33
|
* Mappings for the measurement values in order to index the fields
|
|
13
34
|
*/
|
|
14
35
|
valuesMappings: JSONObject;
|
|
36
|
+
valuesDetails?: {
|
|
37
|
+
[valueName: string]: MeasureLocales;
|
|
38
|
+
};
|
|
15
39
|
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { JSONObject, KuzzleError } from "kuzzle";
|
|
2
|
+
export declare class MappingsConflictsError extends KuzzleError {
|
|
3
|
+
private conflicts;
|
|
4
|
+
constructor(message: string, conflicts: JSONObject, id?: string, code?: number);
|
|
5
|
+
get name(): string;
|
|
6
|
+
toJSON(): JSONObject;
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MappingsConflictsError = void 0;
|
|
4
|
+
const kuzzle_1 = require("kuzzle");
|
|
5
|
+
class MappingsConflictsError extends kuzzle_1.KuzzleError {
|
|
6
|
+
constructor(message, conflicts, id, code) {
|
|
7
|
+
super(message, 409, id, code);
|
|
8
|
+
this.conflicts = conflicts;
|
|
9
|
+
}
|
|
10
|
+
get name() {
|
|
11
|
+
return "MappingsConflictsError";
|
|
12
|
+
}
|
|
13
|
+
toJSON() {
|
|
14
|
+
const json = super.toJSON();
|
|
15
|
+
json.chunks = this.conflicts;
|
|
16
|
+
return json;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.MappingsConflictsError = MappingsConflictsError;
|
|
20
|
+
//# sourceMappingURL=MappingsConflictsError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MappingsConflictsError.js","sourceRoot":"","sources":["../../../../lib/modules/model/MappingsConflictsError.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AAEjD,MAAa,sBAAuB,SAAQ,oBAAW;IAErD,YACE,OAAe,EACf,SAAqB,EACrB,EAAW,EACX,IAAa;QAEb,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAEM,MAAM;QACX,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAE5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAE7B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAvBD,wDAuBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSerializer.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelSerializer.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAQzC,MAAa,eAAe;IAC1B,MAAM,CAAC,EAAE,CAAyB,IAAY,EAAE,KAAQ;QACtD,IAAI,IAAI,KAAK,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"ModelSerializer.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelSerializer.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAQzC,MAAa,eAAe;IAC1B,MAAM,CAAC,EAAE,CAAyB,IAAY,EAAE,KAAQ;QACtD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO,eAAe,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC7D,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,gBAAgB,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC9D,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,iBAAiB,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC/D,CAAC;QAED,MAAM,IAAI,wBAAe,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,KAAK,CAAyB,IAAY,EAAE,KAAQ;QACzD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAQ,KAA2B,CAAC,KAAK,CAAC,KAAK,CAAC;QAClD,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAQ,KAA4B,CAAC,MAAM,CAAC,KAAK,CAAC;QACpD,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAQ,KAA6B,CAAC,OAAO,CAAC,IAAI,CAAC;QACrD,CAAC;QAED,MAAM,IAAI,wBAAe,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;IAC5D,CAAC;CACF;AAxBD,0CAwBC"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
import { KuzzleRequest } from "kuzzle";
|
|
1
2
|
import { JSONObject, KDocument } from "kuzzle-sdk";
|
|
2
3
|
import { DeviceManagerPlugin } from "../plugin";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
private get sdk();
|
|
4
|
+
import { BaseService } from "../shared";
|
|
5
|
+
import { AssetModelContent, DeviceModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
|
|
6
|
+
import { MeasureValuesDetails } from "../measure";
|
|
7
|
+
export declare class ModelService extends BaseService {
|
|
8
8
|
constructor(plugin: DeviceManagerPlugin);
|
|
9
9
|
registerAskEvents(): void;
|
|
10
|
-
|
|
10
|
+
private checkModelsConflicts;
|
|
11
|
+
writeAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels): Promise<KDocument<AssetModelContent>>;
|
|
11
12
|
private checkDefaultValues;
|
|
12
|
-
writeDevice(model: string, metadataMappings:
|
|
13
|
-
writeMeasure(type: string, valuesMappings: JSONObject): Promise<KDocument<MeasureModelContent>>;
|
|
13
|
+
writeDevice(model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: DeviceModelContent["device"]["measures"]): Promise<KDocument<DeviceModelContent>>;
|
|
14
|
+
writeMeasure(type: string, valuesMappings: JSONObject, valuesDetails?: MeasureValuesDetails): Promise<KDocument<MeasureModelContent>>;
|
|
14
15
|
deleteAsset(_id: string): Promise<void>;
|
|
15
16
|
deleteDevice(_id: string): Promise<void>;
|
|
16
17
|
deleteMeasure(_id: string): Promise<void>;
|
|
@@ -22,4 +23,8 @@ export declare class ModelService {
|
|
|
22
23
|
getAsset(engineGroup: string, model: string): Promise<KDocument<AssetModelContent>>;
|
|
23
24
|
getDevice(model: string): Promise<KDocument<DeviceModelContent>>;
|
|
24
25
|
getMeasure(type: string): Promise<KDocument<MeasureModelContent>>;
|
|
26
|
+
/**
|
|
27
|
+
* Update an asset model
|
|
28
|
+
*/
|
|
29
|
+
updateAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels, request: KuzzleRequest): Promise<KDocument<AssetModelContent>>;
|
|
25
30
|
}
|
|
@@ -2,84 +2,171 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ModelService = void 0;
|
|
4
4
|
const kuzzle_1 = require("kuzzle");
|
|
5
|
+
const kuzzle_plugin_commons_1 = require("kuzzle-plugin-commons");
|
|
5
6
|
const plugin_1 = require("../plugin");
|
|
6
|
-
const
|
|
7
|
-
const flattenObject_1 = require("../shared/utils/flattenObject");
|
|
7
|
+
const shared_1 = require("../shared");
|
|
8
8
|
const ModelSerializer_1 = require("./ModelSerializer");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return this.context.accessors.sdk;
|
|
12
|
-
}
|
|
9
|
+
const MappingsConflictsError_1 = require("./MappingsConflictsError");
|
|
10
|
+
class ModelService extends shared_1.BaseService {
|
|
13
11
|
constructor(plugin) {
|
|
14
|
-
|
|
15
|
-
this.context = plugin.context;
|
|
12
|
+
super(plugin);
|
|
16
13
|
this.registerAskEvents();
|
|
17
14
|
}
|
|
18
15
|
registerAskEvents() {
|
|
19
|
-
(0,
|
|
16
|
+
(0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:asset:get", async ({ engineGroup, model }) => {
|
|
20
17
|
const assetModel = await this.getAsset(engineGroup, model);
|
|
21
18
|
return assetModel._source;
|
|
22
19
|
});
|
|
23
|
-
(0,
|
|
20
|
+
(0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:device:get", async ({ model }) => {
|
|
24
21
|
const deviceModel = await this.getDevice(model);
|
|
25
22
|
return deviceModel._source;
|
|
26
23
|
});
|
|
27
|
-
(0,
|
|
24
|
+
(0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:measure:get", async ({ type }) => {
|
|
28
25
|
const measureModel = await this.getMeasure(type);
|
|
29
26
|
return measureModel._source;
|
|
30
27
|
});
|
|
28
|
+
const genericModelsHandler = async (documents, request) => {
|
|
29
|
+
const { index, collection } = request.input.args;
|
|
30
|
+
if (index === this.config.adminIndex && collection === "models") {
|
|
31
|
+
const models = documents.map((elt) => {
|
|
32
|
+
return elt._source;
|
|
33
|
+
});
|
|
34
|
+
await this.checkModelsConflicts(models);
|
|
35
|
+
}
|
|
36
|
+
return documents;
|
|
37
|
+
};
|
|
38
|
+
this.app.pipe.register("generic:document:beforeWrite", genericModelsHandler);
|
|
39
|
+
this.app.pipe.register("generic:document:beforeUpdate", genericModelsHandler);
|
|
40
|
+
this.app.hook.register("generic:document:afterUpdate", async (documents, request) => {
|
|
41
|
+
const { index, collection } = request.input.args;
|
|
42
|
+
if (index === this.config.adminIndex && collection === "models") {
|
|
43
|
+
await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
|
|
44
|
+
}
|
|
45
|
+
});
|
|
31
46
|
}
|
|
32
|
-
async
|
|
47
|
+
async checkModelsConflicts(documents) {
|
|
48
|
+
const assets = documents.filter((elt) => {
|
|
49
|
+
return elt.type === "asset";
|
|
50
|
+
});
|
|
51
|
+
const devices = documents.filter((elt) => {
|
|
52
|
+
return elt.type === "device";
|
|
53
|
+
});
|
|
54
|
+
const measures = documents.filter((elt) => {
|
|
55
|
+
return elt.type === "measure";
|
|
56
|
+
});
|
|
57
|
+
if (assets.length > 0) {
|
|
58
|
+
const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", {
|
|
59
|
+
twin: {
|
|
60
|
+
models: assets,
|
|
61
|
+
type: "asset",
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
if (conflicts.length > 0) {
|
|
65
|
+
throw new MappingsConflictsError_1.MappingsConflictsError(`New assets mappings are causing conflicts`, conflicts);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (devices.length > 0) {
|
|
69
|
+
const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", {
|
|
70
|
+
twin: {
|
|
71
|
+
models: devices,
|
|
72
|
+
type: "device",
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
if (conflicts.length > 0) {
|
|
76
|
+
throw new MappingsConflictsError_1.MappingsConflictsError(`New devices mappings are causing conflicts`, conflicts);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (measures.length > 0) {
|
|
80
|
+
const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", {
|
|
81
|
+
measuresModels: measures,
|
|
82
|
+
});
|
|
83
|
+
if (conflicts.length > 0) {
|
|
84
|
+
throw new MappingsConflictsError_1.MappingsConflictsError(`New measures mappings are causing conflicts`, conflicts);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
async writeAsset(engineGroup, model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures, tooltipModels) {
|
|
33
89
|
if (kuzzle_1.Inflector.pascalCase(model) !== model) {
|
|
34
90
|
throw new kuzzle_1.BadRequestError(`Asset model "${model}" must be PascalCase.`);
|
|
35
91
|
}
|
|
36
92
|
const modelContent = {
|
|
37
|
-
asset: {
|
|
93
|
+
asset: {
|
|
94
|
+
defaultMetadata,
|
|
95
|
+
measures,
|
|
96
|
+
metadataDetails,
|
|
97
|
+
metadataGroups,
|
|
98
|
+
metadataMappings,
|
|
99
|
+
model,
|
|
100
|
+
tooltipModels,
|
|
101
|
+
},
|
|
38
102
|
engineGroup,
|
|
39
103
|
type: "asset",
|
|
40
104
|
};
|
|
41
105
|
this.checkDefaultValues(metadataMappings, defaultMetadata);
|
|
106
|
+
const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { twin: { models: [modelContent], type: "asset" } });
|
|
107
|
+
if (conflicts.length > 0) {
|
|
108
|
+
throw new MappingsConflictsError_1.MappingsConflictsError(`New assets mappings are causing conflicts`, conflicts);
|
|
109
|
+
}
|
|
42
110
|
const assetModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("asset", modelContent), modelContent);
|
|
43
111
|
await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
|
|
44
|
-
await (0,
|
|
45
|
-
await (0,
|
|
112
|
+
await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
|
|
113
|
+
await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:asset:refresh-model", {
|
|
46
114
|
assetModel: modelContent,
|
|
47
115
|
});
|
|
48
116
|
return assetModel;
|
|
49
117
|
}
|
|
50
118
|
checkDefaultValues(metadataMappings, defaultMetadata) {
|
|
51
|
-
const metadata = Object.keys(JSON.parse(JSON.stringify((0,
|
|
119
|
+
const metadata = Object.keys(JSON.parse(JSON.stringify((0, shared_1.flattenObject)(metadataMappings))
|
|
52
120
|
.replace(/properties\./g, "")
|
|
53
121
|
.replace(/\.type/g, "")));
|
|
54
|
-
const values = Object.keys((0,
|
|
122
|
+
const values = Object.keys((0, shared_1.flattenObject)(defaultMetadata));
|
|
55
123
|
for (let i = 0; i < values.length; i++) {
|
|
56
124
|
if (!metadata.includes(values[i])) {
|
|
57
125
|
throw new kuzzle_1.BadRequestError(`The default value "${values[i]}" is not in the metadata mappings.`);
|
|
58
126
|
}
|
|
59
127
|
}
|
|
60
128
|
}
|
|
61
|
-
async writeDevice(model, metadataMappings, defaultMetadata, measures) {
|
|
129
|
+
async writeDevice(model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures) {
|
|
62
130
|
if (kuzzle_1.Inflector.pascalCase(model) !== model) {
|
|
63
131
|
throw new kuzzle_1.BadRequestError(`Device model "${model}" must be PascalCase.`);
|
|
64
132
|
}
|
|
65
133
|
const modelContent = {
|
|
66
|
-
device: {
|
|
134
|
+
device: {
|
|
135
|
+
defaultMetadata,
|
|
136
|
+
measures,
|
|
137
|
+
metadataDetails,
|
|
138
|
+
metadataGroups,
|
|
139
|
+
metadataMappings,
|
|
140
|
+
model,
|
|
141
|
+
},
|
|
67
142
|
type: "device",
|
|
68
143
|
};
|
|
69
|
-
const
|
|
144
|
+
const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { twin: { models: [modelContent], type: "device" } });
|
|
145
|
+
if (conflicts.length > 0) {
|
|
146
|
+
throw new MappingsConflictsError_1.MappingsConflictsError(`New assets mappings are causing conflicts`, conflicts);
|
|
147
|
+
}
|
|
148
|
+
const deviceModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("device", modelContent), modelContent);
|
|
70
149
|
await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
|
|
71
|
-
await (0,
|
|
72
|
-
return
|
|
150
|
+
await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
|
|
151
|
+
return deviceModel;
|
|
73
152
|
}
|
|
74
|
-
async writeMeasure(type, valuesMappings) {
|
|
153
|
+
async writeMeasure(type, valuesMappings, valuesDetails) {
|
|
75
154
|
const modelContent = {
|
|
76
|
-
measure: {
|
|
155
|
+
measure: {
|
|
156
|
+
type,
|
|
157
|
+
valuesDetails,
|
|
158
|
+
valuesMappings,
|
|
159
|
+
},
|
|
77
160
|
type: "measure",
|
|
78
161
|
};
|
|
79
|
-
const
|
|
162
|
+
const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { measuresModels: [modelContent] });
|
|
163
|
+
if (conflicts.length > 0) {
|
|
164
|
+
throw new MappingsConflictsError_1.MappingsConflictsError(`New assets mappings are causing conflicts`, conflicts);
|
|
165
|
+
}
|
|
166
|
+
const measureModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("measure", modelContent), modelContent);
|
|
80
167
|
await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
|
|
81
|
-
await (0,
|
|
82
|
-
return
|
|
168
|
+
await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
|
|
169
|
+
return measureModel;
|
|
83
170
|
}
|
|
84
171
|
async deleteAsset(_id) {
|
|
85
172
|
await this.sdk.document.delete(this.config.adminIndex, plugin_1.InternalCollection.MODELS, _id);
|
|
@@ -92,7 +179,15 @@ class ModelService {
|
|
|
92
179
|
}
|
|
93
180
|
async listAsset(engineGroup) {
|
|
94
181
|
const query = {
|
|
95
|
-
and: [
|
|
182
|
+
and: [
|
|
183
|
+
{ equals: { type: "asset" } },
|
|
184
|
+
{
|
|
185
|
+
or: [
|
|
186
|
+
{ equals: { engineGroup } },
|
|
187
|
+
{ equals: { engineGroup: "commons" } },
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
],
|
|
96
191
|
};
|
|
97
192
|
const sort = { "asset.model": "asc" };
|
|
98
193
|
const result = await this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, { query, sort }, { lang: "koncorde", size: 5000 });
|
|
@@ -174,6 +269,45 @@ class ModelService {
|
|
|
174
269
|
}
|
|
175
270
|
return result.hits[0];
|
|
176
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Update an asset model
|
|
274
|
+
*/
|
|
275
|
+
async updateAsset(engineGroup, model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures, tooltipModels, request) {
|
|
276
|
+
if (kuzzle_1.Inflector.pascalCase(model) !== model) {
|
|
277
|
+
throw new kuzzle_1.BadRequestError(`Asset model "${model}" must be PascalCase.`);
|
|
278
|
+
}
|
|
279
|
+
this.checkDefaultValues(metadataMappings, defaultMetadata);
|
|
280
|
+
const existingAsset = await this.getAsset(engineGroup, model);
|
|
281
|
+
// The field must be deleted if an element of the table is to be deleted
|
|
282
|
+
await this.sdk.document.deleteFields(this.config.adminIndex, plugin_1.InternalCollection.MODELS, existingAsset._id, ["asset.tooltipModels"], { source: true });
|
|
283
|
+
const measuresUpdated = measures.length === 0 ? existingAsset._source.asset.measures : measures;
|
|
284
|
+
const assetModelContent = {
|
|
285
|
+
asset: {
|
|
286
|
+
defaultMetadata,
|
|
287
|
+
measures: measuresUpdated,
|
|
288
|
+
metadataDetails,
|
|
289
|
+
metadataGroups,
|
|
290
|
+
metadataMappings,
|
|
291
|
+
model,
|
|
292
|
+
tooltipModels,
|
|
293
|
+
},
|
|
294
|
+
engineGroup,
|
|
295
|
+
type: "asset",
|
|
296
|
+
};
|
|
297
|
+
const assetModel = {
|
|
298
|
+
_id: existingAsset._id,
|
|
299
|
+
_source: assetModelContent,
|
|
300
|
+
};
|
|
301
|
+
const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { twin: { models: [assetModelContent], type: "asset" } });
|
|
302
|
+
if (conflicts.length > 0) {
|
|
303
|
+
throw new MappingsConflictsError_1.MappingsConflictsError(`Assets mappings are causing conflicts`, conflicts);
|
|
304
|
+
}
|
|
305
|
+
const endDocument = await this.updateDocument(request, assetModel, {
|
|
306
|
+
collection: plugin_1.InternalCollection.MODELS,
|
|
307
|
+
engineId: this.config.adminIndex,
|
|
308
|
+
}, { source: true });
|
|
309
|
+
return endDocument;
|
|
310
|
+
}
|
|
177
311
|
}
|
|
178
312
|
exports.ModelService = ModelService;
|
|
179
313
|
//# sourceMappingURL=ModelService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelService.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ModelService.js","sourceRoot":"","sources":["../../../../lib/modules/model/ModelService.ts"],"names":[],"mappings":"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"}
|