Skip to content

Commit f53739a

Browse files
refacto(payloadservice): refactor with getDeviceMeasureSource function
1 parent e5fced8 commit f53739a

File tree

1 file changed

+47
-58
lines changed

1 file changed

+47
-58
lines changed

lib/modules/decoder/PayloadService.ts

Lines changed: 47 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { Decoder } from "./Decoder";
1818
import { DecodingState } from "./DecodingState";
1919
import { SkipError } from "./SkipError";
2020
import { AskPayloadReceiveFormated } from "./types/PayloadEvents";
21+
import { DeviceMeasureSource } from "../measure/types/MeasureSources";
2122

2223
export class PayloadService extends BaseService {
2324
constructor(plugin: DeviceManagerPlugin) {
@@ -110,19 +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: {
119-
reference,
120-
model,
121-
metadata,
122-
linkedMeasures,
123-
engineId,
124-
groups,
125-
},
121+
_source: { reference, linkedMeasures, engineId },
126122
} = device;
127123
// ? Done here to avoid invoque Measure service only for device metadata change (if no engineId)
128124
const deviceMetadataChanges = decodedPayload.getMetadata(reference);
@@ -152,15 +148,10 @@ export class PayloadService extends BaseService {
152148
{
153149
measurements,
154150
payloadUuids: [uuid],
155-
source: {
156-
deviceMetadata: metadata,
157-
groups,
158-
id: _id,
159-
metadata: deviceMetadataChanges,
160-
model: model,
161-
reference: reference,
162-
type: "device",
163-
},
151+
source: this.getDeviceMeasureSource(
152+
device,
153+
deviceMetadataChanges,
154+
),
164155
target: {
165156
assetId: null,
166157
indexId: engineId,
@@ -183,15 +174,10 @@ export class PayloadService extends BaseService {
183174
{
184175
measurements: assetMeasurements,
185176
payloadUuids: [uuid],
186-
source: {
187-
deviceMetadata: metadata,
188-
groups,
189-
id: _id,
190-
metadata: deviceMetadataChanges,
191-
model: model,
192-
reference: reference,
193-
type: "device",
194-
},
177+
source: this.getDeviceMeasureSource(
178+
device,
179+
deviceMetadataChanges,
180+
),
195181
target: {
196182
assetId: assetId,
197183
indexId: engineId,
@@ -215,15 +201,10 @@ export class PayloadService extends BaseService {
215201
{
216202
measurements: unlinkedMeasurements,
217203
payloadUuids: [uuid],
218-
source: {
219-
deviceMetadata: metadata,
220-
groups,
221-
id: _id,
222-
metadata: deviceMetadataChanges,
223-
model: model,
224-
reference: reference,
225-
type: "device",
226-
},
204+
source: this.getDeviceMeasureSource(
205+
device,
206+
deviceMetadataChanges,
207+
),
227208
target: {
228209
assetId: null,
229210
indexId: engineId,
@@ -245,8 +226,7 @@ export class PayloadService extends BaseService {
245226
) {
246227
const apiAction = "device-manager/devices:receiveMeasure";
247228
const {
248-
_id,
249-
_source: { reference, model, metadata, linkedMeasures, engineId, groups },
229+
_source: { model, linkedMeasures, engineId },
250230
} = device;
251231

252232
// TODO: do we want update a metadata from formatted payload to ?
@@ -270,14 +250,10 @@ export class PayloadService extends BaseService {
270250
{
271251
measurements: assetMeasurements,
272252
payloadUuids,
273-
source: {
274-
deviceMetadata: metadata,
275-
groups,
276-
id: _id,
277-
model: model,
278-
reference: reference,
279-
type: "device",
280-
},
253+
source: this.getDeviceMeasureSource(
254+
device,
255+
device._source.metadata,
256+
),
281257
target: {
282258
assetId: assetId,
283259
indexId: engineId,
@@ -301,14 +277,10 @@ export class PayloadService extends BaseService {
301277
{
302278
measurements: unlinkedMeasurements,
303279
payloadUuids,
304-
source: {
305-
deviceMetadata: metadata,
306-
groups,
307-
id: _id,
308-
model: model,
309-
reference: reference,
310-
type: "device",
311-
},
280+
source: this.getDeviceMeasureSource(
281+
device,
282+
device._source.metadata,
283+
),
312284
target: {
313285
assetId: null,
314286
indexId: engineId,
@@ -398,9 +370,7 @@ export class PayloadService extends BaseService {
398370
updatedDevices.push(...newDevices);
399371
} else {
400372
this.app.log.info(
401-
`Skipping new devices "${errors.join(
402-
", ",
403-
)}". Auto-provisioning is disabled.`,
373+
`Skipping new devices "${errors.join(", ")}". Auto-provisioning is disabled.`,
404374
);
405375
}
406376
}
@@ -485,7 +455,9 @@ export class PayloadService extends BaseService {
485455
const deleted = await this.sdk.bulk.deleteByQuery(
486456
this.config.platformIndex,
487457
"payloads",
488-
{ query: { bool: { filter } } },
458+
{
459+
query: { bool: { filter } },
460+
},
489461
);
490462

491463
return deleted;
@@ -498,4 +470,21 @@ export class PayloadService extends BaseService {
498470
) {
499471
await this.savePayload(deviceModel, uuidv4(), false, payload, apiAction);
500472
}
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+
}
501490
}

0 commit comments

Comments
 (0)