@@ -18,6 +18,7 @@ import { Decoder } from "./Decoder";
1818import { DecodingState } from "./DecodingState" ;
1919import { SkipError } from "./SkipError" ;
2020import { AskPayloadReceiveFormated } from "./types/PayloadEvents" ;
21+ import { DeviceMeasureSource } from "../measure/types/MeasureSources" ;
2122
2223export class PayloadService extends BaseService {
2324 constructor ( plugin : DeviceManagerPlugin ) {
@@ -110,12 +111,14 @@ export class PayloadService extends BaseService {
110111 const devices = await this . retrieveDevices (
111112 decoder . deviceModel ,
112113 decodedPayload . references ,
113- { refresh } ,
114+ {
115+ refresh,
116+ } ,
114117 ) ;
115118 for ( const device of devices ) {
116119 const {
117120 _id,
118- _source : { reference, model , metadata , linkedMeasures, engineId } ,
121+ _source : { reference, linkedMeasures, engineId } ,
119122 } = device ;
120123 // ? Done here to avoid invoque Measure service only for device metadata change (if no engineId)
121124 const deviceMetadataChanges = decodedPayload . getMetadata ( reference ) ;
@@ -145,14 +148,10 @@ export class PayloadService extends BaseService {
145148 {
146149 measurements,
147150 payloadUuids : [ uuid ] ,
148- source : {
149- deviceMetadata : metadata ,
150- id : _id ,
151- metadata : deviceMetadataChanges ,
152- model : model ,
153- reference : reference ,
154- type : "device" ,
155- } ,
151+ source : this . getDeviceMeasureSource (
152+ device ,
153+ deviceMetadataChanges ,
154+ ) ,
156155 target : {
157156 assetId : null ,
158157 indexId : engineId ,
@@ -175,14 +174,10 @@ export class PayloadService extends BaseService {
175174 {
176175 measurements : assetMeasurements ,
177176 payloadUuids : [ uuid ] ,
178- source : {
179- deviceMetadata : metadata ,
180- id : _id ,
181- metadata : deviceMetadataChanges ,
182- model : model ,
183- reference : reference ,
184- type : "device" ,
185- } ,
177+ source : this . getDeviceMeasureSource (
178+ device ,
179+ deviceMetadataChanges ,
180+ ) ,
186181 target : {
187182 assetId : assetId ,
188183 indexId : engineId ,
@@ -206,14 +201,10 @@ export class PayloadService extends BaseService {
206201 {
207202 measurements : unlinkedMeasurements ,
208203 payloadUuids : [ uuid ] ,
209- source : {
210- deviceMetadata : metadata ,
211- id : _id ,
212- metadata : deviceMetadataChanges ,
213- model : model ,
214- reference : reference ,
215- type : "device" ,
216- } ,
204+ source : this . getDeviceMeasureSource (
205+ device ,
206+ deviceMetadataChanges ,
207+ ) ,
217208 target : {
218209 assetId : null ,
219210 indexId : engineId ,
@@ -235,8 +226,7 @@ export class PayloadService extends BaseService {
235226 ) {
236227 const apiAction = "device-manager/devices:receiveMeasure" ;
237228 const {
238- _id,
239- _source : { reference, model, metadata, linkedMeasures, engineId } ,
229+ _source : { model, linkedMeasures, engineId } ,
240230 } = device ;
241231
242232 // TODO: do we want update a metadata from formatted payload to ?
@@ -260,13 +250,10 @@ export class PayloadService extends BaseService {
260250 {
261251 measurements : assetMeasurements ,
262252 payloadUuids,
263- source : {
264- deviceMetadata : metadata ,
265- id : _id ,
266- model : model ,
267- reference : reference ,
268- type : "device" ,
269- } ,
253+ source : this . getDeviceMeasureSource (
254+ device ,
255+ device . _source . metadata ,
256+ ) ,
270257 target : {
271258 assetId : assetId ,
272259 indexId : engineId ,
@@ -290,13 +277,10 @@ export class PayloadService extends BaseService {
290277 {
291278 measurements : unlinkedMeasurements ,
292279 payloadUuids,
293- source : {
294- deviceMetadata : metadata ,
295- id : _id ,
296- model : model ,
297- reference : reference ,
298- type : "device" ,
299- } ,
280+ source : this . getDeviceMeasureSource (
281+ device ,
282+ device . _source . metadata ,
283+ ) ,
300284 target : {
301285 assetId : null ,
302286 indexId : engineId ,
@@ -386,9 +370,7 @@ export class PayloadService extends BaseService {
386370 updatedDevices . push ( ...newDevices ) ;
387371 } else {
388372 this . app . log . info (
389- `Skipping new devices "${ errors . join (
390- ", " ,
391- ) } ". Auto-provisioning is disabled.`,
373+ `Skipping new devices "${ errors . join ( ", " ) } ". Auto-provisioning is disabled.` ,
392374 ) ;
393375 }
394376 }
@@ -473,7 +455,9 @@ export class PayloadService extends BaseService {
473455 const deleted = await this . sdk . bulk . deleteByQuery (
474456 this . config . platformIndex ,
475457 "payloads" ,
476- { query : { bool : { filter } } } ,
458+ {
459+ query : { bool : { filter } } ,
460+ } ,
477461 ) ;
478462
479463 return deleted ;
@@ -486,4 +470,21 @@ export class PayloadService extends BaseService {
486470 ) {
487471 await this . savePayload ( deviceModel , uuidv4 ( ) , false , payload , apiAction ) ;
488472 }
473+
474+ private getDeviceMeasureSource (
475+ device : KDocument < DeviceContent > ,
476+ deviceMetadataChanges : JSONObject ,
477+ ) : DeviceMeasureSource {
478+ const { reference, model, metadata, groups } = device . _source ;
479+
480+ return {
481+ deviceMetadata : metadata ,
482+ groups,
483+ id : device . _id ,
484+ metadata : deviceMetadataChanges ,
485+ model : model ,
486+ reference : reference ,
487+ type : "device" ,
488+ } ;
489+ }
489490}
0 commit comments