kuzzle-device-manager 2.4.0-beta.9 → 2.4.0-dev.1

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.
Files changed (158) hide show
  1. package/dist/lib/modules/asset/AssetHistoryService.js +2 -1
  2. package/dist/lib/modules/asset/AssetHistoryService.js.map +1 -1
  3. package/dist/lib/modules/asset/AssetModule.js +30 -0
  4. package/dist/lib/modules/asset/AssetModule.js.map +1 -1
  5. package/dist/lib/modules/asset/AssetService.d.ts +18 -4
  6. package/dist/lib/modules/asset/AssetService.js +91 -12
  7. package/dist/lib/modules/asset/AssetService.js.map +1 -1
  8. package/dist/lib/modules/asset/AssetsController.d.ts +7 -1
  9. package/dist/lib/modules/asset/AssetsController.js +132 -1
  10. package/dist/lib/modules/asset/AssetsController.js.map +1 -1
  11. package/dist/lib/modules/asset/AssetsGroupsController.js +1 -1
  12. package/dist/lib/modules/asset/AssetsGroupsController.js.map +1 -1
  13. package/dist/lib/modules/asset/model/AssetSerializer.js.map +1 -1
  14. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js +3 -0
  15. package/dist/lib/modules/asset/roles/RoleAssetsAdmin.js.map +1 -1
  16. package/dist/lib/modules/asset/roles/RoleAssetsReader.d.ts +4 -0
  17. package/dist/lib/modules/asset/roles/RoleAssetsReader.js +8 -0
  18. package/dist/lib/modules/asset/roles/RoleAssetsReader.js.map +1 -1
  19. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.d.ts +8 -0
  20. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.js +20 -0
  21. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.js.map +1 -0
  22. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.d.ts +8 -0
  23. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.js +24 -0
  24. package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.js.map +1 -0
  25. package/dist/lib/modules/asset/roles/specificRoles/index.d.ts +2 -0
  26. package/dist/lib/modules/asset/roles/specificRoles/index.js +19 -0
  27. package/dist/lib/modules/asset/roles/specificRoles/index.js.map +1 -0
  28. package/dist/lib/modules/asset/types/AssetApi.d.ts +31 -2
  29. package/dist/lib/modules/decoder/DecodedPayload.js.map +1 -1
  30. package/dist/lib/modules/decoder/Decoder.d.ts +11 -0
  31. package/dist/lib/modules/decoder/Decoder.js +1 -0
  32. package/dist/lib/modules/decoder/Decoder.js.map +1 -1
  33. package/dist/lib/modules/decoder/DecodersRegister.js.map +1 -1
  34. package/dist/lib/modules/decoder/DecodingState.js +1 -1
  35. package/dist/lib/modules/decoder/DecodingState.js.map +1 -1
  36. package/dist/lib/modules/decoder/PayloadService.d.ts +1 -1
  37. package/dist/lib/modules/decoder/PayloadService.js +12 -6
  38. package/dist/lib/modules/decoder/PayloadService.js.map +1 -1
  39. package/dist/lib/modules/decoder/PayloadsController.js.map +1 -1
  40. package/dist/lib/modules/decoder/types/DecoderContent.d.ts +1 -0
  41. package/dist/lib/modules/device/DeviceModule.js +30 -0
  42. package/dist/lib/modules/device/DeviceModule.js.map +1 -1
  43. package/dist/lib/modules/device/DeviceService.d.ts +13 -5
  44. package/dist/lib/modules/device/DeviceService.js +66 -14
  45. package/dist/lib/modules/device/DeviceService.js.map +1 -1
  46. package/dist/lib/modules/device/DevicesController.d.ts +7 -1
  47. package/dist/lib/modules/device/DevicesController.js +134 -3
  48. package/dist/lib/modules/device/DevicesController.js.map +1 -1
  49. package/dist/lib/modules/device/roles/RoleDevicesReader.d.ts +4 -0
  50. package/dist/lib/modules/device/roles/RoleDevicesReader.js +8 -0
  51. package/dist/lib/modules/device/roles/RoleDevicesReader.js.map +1 -1
  52. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.d.ts +8 -0
  53. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.js +20 -0
  54. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.js.map +1 -0
  55. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.d.ts +8 -0
  56. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.js +20 -0
  57. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.js.map +1 -0
  58. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.d.ts +8 -0
  59. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.js +24 -0
  60. package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.js.map +1 -0
  61. package/dist/lib/modules/device/roles/specificRoles/index.d.ts +3 -0
  62. package/dist/lib/modules/device/roles/specificRoles/index.js +20 -0
  63. package/dist/lib/modules/device/roles/specificRoles/index.js.map +1 -0
  64. package/dist/lib/modules/device/types/DeviceApi.d.ts +23 -2
  65. package/dist/lib/modules/measure/MeasureExporter.d.ts +5 -4
  66. package/dist/lib/modules/measure/MeasureExporter.js +35 -14
  67. package/dist/lib/modules/measure/MeasureExporter.js.map +1 -1
  68. package/dist/lib/modules/measure/MeasureService.js +4 -2
  69. package/dist/lib/modules/measure/MeasureService.js.map +1 -1
  70. package/dist/lib/modules/measure/collections/measuresMappings.d.ts +3 -0
  71. package/dist/lib/modules/measure/collections/measuresMappings.js +5 -0
  72. package/dist/lib/modules/measure/collections/measuresMappings.js.map +1 -1
  73. package/dist/lib/modules/measure/measures/BatteryMeasure.js +12 -0
  74. package/dist/lib/modules/measure/measures/BatteryMeasure.js.map +1 -1
  75. package/dist/lib/modules/measure/measures/HumidityMeasure.js +12 -0
  76. package/dist/lib/modules/measure/measures/HumidityMeasure.js.map +1 -1
  77. package/dist/lib/modules/measure/measures/MovementMeasure.js +10 -0
  78. package/dist/lib/modules/measure/measures/MovementMeasure.js.map +1 -1
  79. package/dist/lib/modules/measure/measures/PositionMeasure.js +22 -0
  80. package/dist/lib/modules/measure/measures/PositionMeasure.js.map +1 -1
  81. package/dist/lib/modules/measure/measures/TemperatureMeasure.js +12 -0
  82. package/dist/lib/modules/measure/measures/TemperatureMeasure.js.map +1 -1
  83. package/dist/lib/modules/measure/types/MeasureContent.d.ts +4 -0
  84. package/dist/lib/modules/measure/types/MeasureDefinition.d.ts +28 -3
  85. package/dist/lib/modules/model/MappingsConflictsError.d.ts +7 -0
  86. package/dist/lib/modules/model/MappingsConflictsError.js +20 -0
  87. package/dist/lib/modules/model/MappingsConflictsError.js.map +1 -0
  88. package/dist/lib/modules/model/ModelSerializer.js.map +1 -1
  89. package/dist/lib/modules/model/ModelService.d.ts +16 -6
  90. package/dist/lib/modules/model/ModelService.js +246 -34
  91. package/dist/lib/modules/model/ModelService.js.map +1 -1
  92. package/dist/lib/modules/model/ModelsConflicts.d.ts +30 -0
  93. package/dist/lib/modules/model/ModelsConflicts.js +106 -0
  94. package/dist/lib/modules/model/ModelsConflicts.js.map +1 -0
  95. package/dist/lib/modules/model/ModelsController.d.ts +5 -1
  96. package/dist/lib/modules/model/ModelsController.js +54 -3
  97. package/dist/lib/modules/model/ModelsController.js.map +1 -1
  98. package/dist/lib/modules/model/ModelsRegister.d.ts +28 -3
  99. package/dist/lib/modules/model/ModelsRegister.js +50 -5
  100. package/dist/lib/modules/model/ModelsRegister.js.map +1 -1
  101. package/dist/lib/modules/model/collections/modelsMappings.js +24 -0
  102. package/dist/lib/modules/model/collections/modelsMappings.js.map +1 -1
  103. package/dist/lib/modules/model/types/ModelApi.d.ts +50 -4
  104. package/dist/lib/modules/model/types/ModelContent.d.ts +263 -2
  105. package/dist/lib/modules/model/types/ModelContent.js +15 -0
  106. package/dist/lib/modules/model/types/ModelContent.js.map +1 -1
  107. package/dist/lib/modules/model/types/ModelDefinition.d.ts +141 -5
  108. package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +141 -5
  109. package/dist/lib/modules/plugin/DeviceManagerEngine.js +235 -37
  110. package/dist/lib/modules/plugin/DeviceManagerEngine.js.map +1 -1
  111. package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +113 -8
  112. package/dist/lib/modules/plugin/DeviceManagerPlugin.js +141 -19
  113. package/dist/lib/modules/plugin/DeviceManagerPlugin.js.map +1 -1
  114. package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +18 -4
  115. package/dist/lib/modules/plugin/types/InternalCollection.js +1 -1
  116. package/dist/lib/modules/plugin/types/InternalCollection.js.map +1 -1
  117. package/dist/lib/modules/shared/exports.d.ts +2 -0
  118. package/dist/lib/modules/shared/exports.js +2 -0
  119. package/dist/lib/modules/shared/exports.js.map +1 -1
  120. package/dist/lib/modules/shared/index.d.ts +6 -4
  121. package/dist/lib/modules/shared/index.js +6 -4
  122. package/dist/lib/modules/shared/index.js.map +1 -1
  123. package/dist/lib/modules/shared/services/AbstractExporter.d.ts +1 -2
  124. package/dist/lib/modules/shared/services/AbstractExporter.js +7 -1
  125. package/dist/lib/modules/shared/services/AbstractExporter.js.map +1 -1
  126. package/dist/lib/modules/shared/services/BaseService.js.map +1 -1
  127. package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +0 -2
  128. package/dist/lib/modules/shared/services/DigitalTwinExporter.js +8 -2
  129. package/dist/lib/modules/shared/services/DigitalTwinExporter.js.map +1 -1
  130. package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +21 -0
  131. package/dist/lib/modules/shared/services/DigitalTwinService.js +162 -0
  132. package/dist/lib/modules/shared/services/DigitalTwinService.js.map +1 -0
  133. package/dist/lib/modules/shared/services/index.d.ts +1 -0
  134. package/dist/lib/modules/shared/services/index.js +1 -0
  135. package/dist/lib/modules/shared/services/index.js.map +1 -1
  136. package/dist/lib/modules/shared/types/DigitalTwinApi.d.ts +34 -0
  137. package/dist/lib/modules/shared/types/DigitalTwinApi.js +3 -0
  138. package/dist/lib/modules/shared/types/DigitalTwinApi.js.map +1 -0
  139. package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +2 -4
  140. package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +9 -0
  141. package/dist/lib/modules/shared/types/DigitalTwinEvents.js +3 -0
  142. package/dist/lib/modules/shared/types/DigitalTwinEvents.js.map +1 -0
  143. package/dist/lib/modules/shared/types/DigitalTwinMeasures.d.ts +5 -0
  144. package/dist/lib/modules/shared/types/DigitalTwinMeasures.js +3 -0
  145. package/dist/lib/modules/shared/types/DigitalTwinMeasures.js.map +1 -0
  146. package/dist/lib/modules/shared/utils/flattenObject.js +1 -2
  147. package/dist/lib/modules/shared/utils/flattenObject.js.map +1 -1
  148. package/dist/lib/modules/shared/utils/keepStack.js +1 -2
  149. package/dist/lib/modules/shared/utils/keepStack.js.map +1 -1
  150. package/dist/lib/modules/shared/utils/lock.js +1 -2
  151. package/dist/lib/modules/shared/utils/lock.js.map +1 -1
  152. package/dist/lib/modules/shared/utils/objectDiff.js +1 -2
  153. package/dist/lib/modules/shared/utils/objectDiff.js.map +1 -1
  154. package/dist/tsconfig.tsbuildinfo +1 -0
  155. package/package.json +26 -26
  156. package/dist/lib/modules/shared/utils/ask.d.ts +0 -8
  157. package/dist/lib/modules/shared/utils/ask.js +0 -12
  158. package/dist/lib/modules/shared/utils/ask.js.map +0 -1
@@ -1,23 +1,33 @@
1
- import { JSONObject, KDocument } from "kuzzle-sdk";
1
+ import { KuzzleRequest } from "kuzzle";
2
+ import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
2
3
  import { DeviceManagerPlugin } from "../plugin";
3
- import { BaseService } from "../shared";
4
- import { AssetModelContent, DeviceModelContent, MeasureModelContent } from "./types/ModelContent";
4
+ import { BaseService, SearchParams } from "../shared";
5
+ import { AssetModelContent, DeviceModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
6
+ import { MeasureValuesDetails } from "../measure";
5
7
  export declare class ModelService extends BaseService {
6
8
  constructor(plugin: DeviceManagerPlugin);
7
9
  registerAskEvents(): void;
8
- writeAsset(engineGroup: string, model: string, metadataMappings: JSONObject, defaultMetadata: JSONObject, measures: AssetModelContent["asset"]["measures"]): Promise<KDocument<AssetModelContent>>;
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>>;
9
12
  private checkDefaultValues;
10
- writeDevice(model: string, metadataMappings: JSONObject, defaultMetadata: JSONObject, measures: DeviceModelContent["device"]["measures"]): Promise<KDocument<DeviceModelContent>>;
11
- 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>>;
12
15
  deleteAsset(_id: string): Promise<void>;
13
16
  deleteDevice(_id: string): Promise<void>;
14
17
  deleteMeasure(_id: string): Promise<void>;
15
18
  listAsset(engineGroup: string): Promise<KDocument<AssetModelContent>[]>;
16
19
  listDevices(): Promise<KDocument<DeviceModelContent>[]>;
17
20
  listMeasures(): Promise<KDocument<MeasureModelContent>[]>;
21
+ searchAssets(engineGroup: string, searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<AssetModelContent>>>;
22
+ searchDevices(searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<DeviceModelContent>>>;
23
+ searchMeasures(searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<MeasureModelContent>>>;
18
24
  assetExists(model: string): Promise<boolean>;
19
25
  deviceExists(model: string): Promise<boolean>;
20
26
  getAsset(engineGroup: string, model: string): Promise<KDocument<AssetModelContent>>;
21
27
  getDevice(model: string): Promise<KDocument<DeviceModelContent>>;
22
28
  getMeasure(type: string): Promise<KDocument<MeasureModelContent>>;
29
+ /**
30
+ * Update an asset model
31
+ */
32
+ updateAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels, request: KuzzleRequest): Promise<KDocument<AssetModelContent>>;
23
33
  }
@@ -2,80 +2,186 @@
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 ask_1 = require("../shared/utils/ask");
7
7
  const shared_1 = require("../shared");
8
8
  const ModelSerializer_1 = require("./ModelSerializer");
9
+ const MappingsConflictsError_1 = require("./MappingsConflictsError");
9
10
  class ModelService extends shared_1.BaseService {
10
11
  constructor(plugin) {
11
12
  super(plugin);
12
13
  this.registerAskEvents();
13
14
  }
14
15
  registerAskEvents() {
15
- (0, ask_1.onAsk)("ask:device-manager:model:asset:get", async ({ engineGroup, model }) => {
16
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:asset:get", async ({ engineGroup, model }) => {
16
17
  const assetModel = await this.getAsset(engineGroup, model);
17
18
  return assetModel._source;
18
19
  });
19
- (0, ask_1.onAsk)("ask:device-manager:model:device:get", async ({ model }) => {
20
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:device:get", async ({ model }) => {
20
21
  const deviceModel = await this.getDevice(model);
21
22
  return deviceModel._source;
22
23
  });
23
- (0, ask_1.onAsk)("ask:device-manager:model:measure:get", async ({ type }) => {
24
+ (0, kuzzle_plugin_commons_1.onAsk)("ask:device-manager:model:measure:get", async ({ type }) => {
24
25
  const measureModel = await this.getMeasure(type);
25
26
  return measureModel._source;
26
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
+ });
27
46
  }
28
- async writeAsset(engineGroup, model, metadataMappings, defaultMetadata, measures) {
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) {
29
89
  if (kuzzle_1.Inflector.pascalCase(model) !== model) {
30
90
  throw new kuzzle_1.BadRequestError(`Asset model "${model}" must be PascalCase.`);
31
91
  }
32
92
  const modelContent = {
33
- asset: { defaultMetadata, measures, metadataMappings, model },
93
+ asset: {
94
+ defaultMetadata,
95
+ measures,
96
+ metadataDetails,
97
+ metadataGroups,
98
+ metadataMappings,
99
+ model,
100
+ tooltipModels,
101
+ },
34
102
  engineGroup,
35
103
  type: "asset",
36
104
  };
37
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
+ }
38
110
  const assetModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("asset", modelContent), modelContent);
39
111
  await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
40
- await (0, ask_1.ask)("ask:device-manager:engine:updateAll");
41
- await (0, ask_1.ask)("ask:device-manager:asset:refresh-model", {
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", {
42
114
  assetModel: modelContent,
43
115
  });
44
116
  return assetModel;
45
117
  }
46
118
  checkDefaultValues(metadataMappings, defaultMetadata) {
47
- const metadata = Object.keys(JSON.parse(JSON.stringify((0, shared_1.flattenObject)(metadataMappings))
119
+ const flattenedMetadataMappings = (0, shared_1.flattenObject)(metadataMappings);
120
+ const metadata = Object.keys(JSON.parse(JSON.stringify(flattenedMetadataMappings)
48
121
  .replace(/properties\./g, "")
49
122
  .replace(/\.type/g, "")));
50
123
  const values = Object.keys((0, shared_1.flattenObject)(defaultMetadata));
51
124
  for (let i = 0; i < values.length; i++) {
52
- if (!metadata.includes(values[i])) {
125
+ const key = values[i];
126
+ // ? Check if the exact key exists in the metadata
127
+ if (!metadata.includes(key)) {
128
+ // ? Extract base key for complex types like geo_point or geo_shape
129
+ const baseKey = key.includes(".") ? key.split(".")[0] : key;
130
+ // ? Check if the base key is in the metadata
131
+ if (!metadata.includes(baseKey)) {
132
+ throw new kuzzle_1.BadRequestError(`The default value "${key}" is not in the metadata mappings.`);
133
+ }
134
+ // ? Accept nested properties for geo_point or geo_shape
135
+ const baseKeyMetadata = flattenedMetadataMappings[`${baseKey}.type`];
136
+ if (baseKeyMetadata === "geo_point" ||
137
+ baseKeyMetadata === "geo_shape") {
138
+ continue;
139
+ }
53
140
  throw new kuzzle_1.BadRequestError(`The default value "${values[i]}" is not in the metadata mappings.`);
54
141
  }
55
142
  }
56
143
  }
57
- async writeDevice(model, metadataMappings, defaultMetadata, measures) {
144
+ async writeDevice(model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures) {
58
145
  if (kuzzle_1.Inflector.pascalCase(model) !== model) {
59
146
  throw new kuzzle_1.BadRequestError(`Device model "${model}" must be PascalCase.`);
60
147
  }
61
148
  const modelContent = {
62
- device: { defaultMetadata, measures, metadataMappings, model },
149
+ device: {
150
+ defaultMetadata,
151
+ measures,
152
+ metadataDetails,
153
+ metadataGroups,
154
+ metadataMappings,
155
+ model,
156
+ },
63
157
  type: "device",
64
158
  };
65
- const assetModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("device", modelContent), modelContent);
159
+ const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { twin: { models: [modelContent], type: "device" } });
160
+ if (conflicts.length > 0) {
161
+ throw new MappingsConflictsError_1.MappingsConflictsError(`New assets mappings are causing conflicts`, conflicts);
162
+ }
163
+ const deviceModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("device", modelContent), modelContent);
66
164
  await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
67
- await (0, ask_1.ask)("ask:device-manager:engine:updateAll");
68
- return assetModel;
165
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
166
+ return deviceModel;
69
167
  }
70
- async writeMeasure(type, valuesMappings) {
168
+ async writeMeasure(type, valuesMappings, valuesDetails) {
71
169
  const modelContent = {
72
- measure: { type, valuesMappings },
170
+ measure: {
171
+ type,
172
+ valuesDetails,
173
+ valuesMappings,
174
+ },
73
175
  type: "measure",
74
176
  };
75
- const assetModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("measure", modelContent), modelContent);
177
+ const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { measuresModels: [modelContent] });
178
+ if (conflicts.length > 0) {
179
+ throw new MappingsConflictsError_1.MappingsConflictsError(`New assets mappings are causing conflicts`, conflicts);
180
+ }
181
+ const measureModel = await this.sdk.document.createOrReplace(this.config.adminIndex, plugin_1.InternalCollection.MODELS, ModelSerializer_1.ModelSerializer.id("measure", modelContent), modelContent);
76
182
  await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
77
- await (0, ask_1.ask)("ask:device-manager:engine:updateAll");
78
- return assetModel;
183
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
184
+ return measureModel;
79
185
  }
80
186
  async deleteAsset(_id) {
81
187
  await this.sdk.document.delete(this.config.adminIndex, plugin_1.InternalCollection.MODELS, _id);
@@ -87,28 +193,90 @@ class ModelService extends shared_1.BaseService {
87
193
  await this.sdk.document.delete(this.config.adminIndex, plugin_1.InternalCollection.MODELS, _id);
88
194
  }
89
195
  async listAsset(engineGroup) {
90
- const query = {
91
- and: [{ equals: { type: "asset" } }, { equals: { engineGroup } }],
92
- };
93
- const sort = { "asset.model": "asc" };
94
- const result = await this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, { query, sort }, { lang: "koncorde", size: 5000 });
196
+ const result = await this.searchAssets(engineGroup, {
197
+ searchBody: {
198
+ sort: { "asset.model": "asc" },
199
+ },
200
+ size: 5000,
201
+ });
95
202
  return result.hits;
96
203
  }
97
204
  async listDevices() {
98
- const query = {
99
- and: [{ equals: { type: "device" } }],
100
- };
101
- const sort = { "device.model": "asc" };
102
- const result = await this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, { query, sort }, { lang: "koncorde", size: 5000 });
205
+ const result = await this.searchDevices({
206
+ searchBody: {
207
+ sort: { "device.model": "asc" },
208
+ },
209
+ size: 5000,
210
+ });
103
211
  return result.hits;
104
212
  }
105
213
  async listMeasures() {
214
+ const result = await this.searchMeasures({
215
+ searchBody: {
216
+ sort: { "measure.type": "asc" },
217
+ },
218
+ size: 5000,
219
+ });
220
+ return result.hits;
221
+ }
222
+ async searchAssets(engineGroup, searchParams) {
106
223
  const query = {
107
- and: [{ equals: { type: "measure" } }],
224
+ bool: {
225
+ must: [
226
+ searchParams.searchBody.query,
227
+ { match: { type: "asset" } },
228
+ {
229
+ bool: {
230
+ should: [
231
+ { match: { engineGroup } },
232
+ { match: { engineGroup: "commons" } },
233
+ ],
234
+ },
235
+ },
236
+ ],
237
+ },
108
238
  };
109
- const sort = { "measure.type": "asc" };
110
- const result = await this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, { query, sort }, { lang: "koncorde", size: 5000 });
111
- return result.hits;
239
+ return this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, {
240
+ ...searchParams.searchBody,
241
+ query,
242
+ }, {
243
+ from: searchParams.from,
244
+ lang: "elasticsearch",
245
+ scroll: searchParams.scrollTTL,
246
+ size: searchParams.size,
247
+ });
248
+ }
249
+ async searchDevices(searchParams) {
250
+ const query = {
251
+ bool: {
252
+ must: [searchParams.searchBody.query, { match: { type: "device" } }],
253
+ },
254
+ };
255
+ return this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, {
256
+ ...searchParams.searchBody,
257
+ query,
258
+ }, {
259
+ from: searchParams.from,
260
+ lang: "elasticsearch",
261
+ scroll: searchParams.scrollTTL,
262
+ size: searchParams.size,
263
+ });
264
+ }
265
+ async searchMeasures(searchParams) {
266
+ const query = {
267
+ bool: {
268
+ must: [searchParams.searchBody.query, { match: { type: "measure" } }],
269
+ },
270
+ };
271
+ return this.sdk.document.search(this.config.adminIndex, plugin_1.InternalCollection.MODELS, {
272
+ ...searchParams.searchBody,
273
+ query,
274
+ }, {
275
+ from: searchParams.from,
276
+ lang: "elasticsearch",
277
+ scroll: searchParams.scrollTTL,
278
+ size: searchParams.size,
279
+ });
112
280
  }
113
281
  async assetExists(model) {
114
282
  const query = {
@@ -170,6 +338,50 @@ class ModelService extends shared_1.BaseService {
170
338
  }
171
339
  return result.hits[0];
172
340
  }
341
+ /**
342
+ * Update an asset model
343
+ */
344
+ async updateAsset(engineGroup, model, metadataMappings, defaultMetadata, metadataDetails, metadataGroups, measures, tooltipModels, request) {
345
+ if (kuzzle_1.Inflector.pascalCase(model) !== model) {
346
+ throw new kuzzle_1.BadRequestError(`Asset model "${model}" must be PascalCase.`);
347
+ }
348
+ this.checkDefaultValues(metadataMappings, defaultMetadata);
349
+ const existingAsset = await this.getAsset(engineGroup, model);
350
+ // The field must be deleted if an element of the table is to be deleted
351
+ await this.sdk.document.deleteFields(this.config.adminIndex, plugin_1.InternalCollection.MODELS, existingAsset._id, ["asset.tooltipModels"], { source: true });
352
+ const measuresUpdated = measures.length === 0 ? existingAsset._source.asset.measures : measures;
353
+ const assetModelContent = {
354
+ asset: {
355
+ defaultMetadata,
356
+ measures: measuresUpdated,
357
+ metadataDetails,
358
+ metadataGroups,
359
+ metadataMappings,
360
+ model,
361
+ tooltipModels,
362
+ },
363
+ engineGroup,
364
+ type: "asset",
365
+ };
366
+ const assetModel = {
367
+ _id: existingAsset._id,
368
+ _source: assetModelContent,
369
+ };
370
+ const conflicts = await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:doesUpdateConflict", { twin: { models: [assetModelContent], type: "asset" } });
371
+ if (conflicts.length > 0) {
372
+ throw new MappingsConflictsError_1.MappingsConflictsError(`Assets mappings are causing conflicts`, conflicts);
373
+ }
374
+ const endDocument = await this.updateDocument(request, assetModel, {
375
+ collection: plugin_1.InternalCollection.MODELS,
376
+ engineId: this.config.adminIndex,
377
+ }, { source: true });
378
+ await this.sdk.collection.refresh(this.config.adminIndex, plugin_1.InternalCollection.MODELS);
379
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:engine:updateAll");
380
+ await (0, kuzzle_plugin_commons_1.ask)("ask:device-manager:asset:refresh-model", {
381
+ assetModel: assetModelContent,
382
+ });
383
+ return endDocument;
384
+ }
173
385
  }
174
386
  exports.ModelService = ModelService;
175
387
  //# 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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"}
@@ -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,106 @@
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.getTwinConflicts = getTwinConflicts;
7
+ exports.getMeasureConflicts = getMeasureConflicts;
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ /**
10
+ * Return every conflicts between the mappings of models and a new model
11
+ *
12
+ * @param modelType The target model type
13
+ * @param models The already present models used as comparison source
14
+ * @param additional The new model
15
+ * @param mappingsPath The object path to the mappings
16
+ * @param modelIdPath The object path to the model ID
17
+ * @returns An array of ConflictChunk between current models and the new model
18
+ */
19
+ function getModelConflicts(modelType, models, additional, mappingsPath, modelIdPath) {
20
+ const conflicts = [];
21
+ for (const model of models) {
22
+ const baseMappings = lodash_1.default.get(model, mappingsPath);
23
+ const updatedMappings = JSON.parse(JSON.stringify(baseMappings));
24
+ lodash_1.default.merge(updatedMappings, lodash_1.default.get(additional, mappingsPath));
25
+ const mappingsConflict = findConflicts(baseMappings, updatedMappings, mappingsPath);
26
+ if (mappingsConflict.length > 0) {
27
+ conflicts.push({
28
+ conflicts: mappingsConflict,
29
+ modelType: modelType,
30
+ newModel: lodash_1.default.get(additional, modelIdPath),
31
+ sourceModel: lodash_1.default.get(model, modelIdPath),
32
+ });
33
+ }
34
+ }
35
+ return conflicts;
36
+ }
37
+ /**
38
+ * Return every conflicts between the mappings of twins and a new twin model
39
+ *
40
+ * @param twinType The target twin type
41
+ * @param models The already present twin models
42
+ * @param additional The new asset
43
+ * @returns An array of ConflictChunk between current twins and the new twin
44
+ */
45
+ function getTwinConflicts(twinType, models, additional) {
46
+ const metadataPath = twinType + ".metadataMappings";
47
+ const modelIdPath = twinType + ".model";
48
+ return getModelConflicts(twinType, models, additional, metadataPath, modelIdPath);
49
+ }
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
+ /**
64
+ * Find every conflicts between two objects.
65
+ * WARNING: "undefined" type of conflicts are not registered
66
+ * @param sourceObject The source object used to compare
67
+ * @param objectToCompare The target object to compare to
68
+ * @param basePath Optional path to be added before conflicts paths
69
+ * @returns An array of MappingsConflict
70
+ */
71
+ function findConflicts(sourceObject, objectToCompare, basePath = "") {
72
+ if (sourceObject === objectToCompare) {
73
+ return [];
74
+ }
75
+ if (lodash_1.default.isEqual(sourceObject, objectToCompare)) {
76
+ return [];
77
+ }
78
+ const conflicts = [];
79
+ function compareObjects(source, toCompare, path = "") {
80
+ //Loop over the source object properties of distinct depth level
81
+ lodash_1.default.forOwn(source, (value, key) => {
82
+ //Construct full path from the previous path and the current key
83
+ const fullPath = path ? `${path}.${key}` : key;
84
+ //Check the object to compare key availibility, if there's nothing return to continue on the next property
85
+ if (!lodash_1.default.has(toCompare, key)) {
86
+ return;
87
+ }
88
+ //If the property to compare is an object, recursively call the method to advance on the next depth level
89
+ if (lodash_1.default.isObject(value) && lodash_1.default.isObject(toCompare[key])) {
90
+ compareObjects(value, toCompare[key], fullPath);
91
+ return;
92
+ }
93
+ //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
94
+ if (!lodash_1.default.isEqual(value, toCompare[key])) {
95
+ conflicts.push({
96
+ currentType: source[key],
97
+ newType: toCompare[key],
98
+ path: fullPath,
99
+ });
100
+ }
101
+ });
102
+ }
103
+ compareObjects(sourceObject, objectToCompare, basePath);
104
+ return conflicts;
105
+ }
106
+ //# 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, ApiModelSearchAssetsResult, ApiModelSearchDevicesResult, ApiModelSearchMeasuresResult } from "./types/ModelApi";
4
4
  export declare class ModelsController {
5
5
  private modelService;
6
6
  definition: ControllerDefinition;
@@ -17,4 +17,8 @@ export declare class ModelsController {
17
17
  listAssets(request: KuzzleRequest): Promise<ApiModelListAssetsResult>;
18
18
  listDevices(): Promise<ApiModelListDevicesResult>;
19
19
  listMeasures(): Promise<ApiModelListMeasuresResult>;
20
+ searchAssets(request: KuzzleRequest): Promise<ApiModelSearchAssetsResult>;
21
+ searchDevices(request: KuzzleRequest): Promise<ApiModelSearchDevicesResult>;
22
+ searchMeasures(request: KuzzleRequest): Promise<ApiModelSearchMeasuresResult>;
23
+ updateAsset(request: KuzzleRequest): Promise<ApiModelUpdateAssetResult>;
20
24
  }