@@ -19,7 +19,7 @@ import {
1919 AssetHistoryEventMeasure ,
2020 AssetHistoryEventMetadata ,
2121} from "../asset" ;
22- import { Metadata , lock , ask , onAsk } from "../shared" ;
22+ import { Metadata , lock , ask , onAsk , keepStack , objectDiff } from "../shared" ;
2323import { AssetSerializer } from "../asset" ;
2424
2525import {
@@ -145,8 +145,11 @@ export class MeasureService {
145145 device . _source
146146 )
147147 . catch ( ( error ) => {
148- throw new BadRequestError (
149- `Cannot update device "${ device . _id } ": ${ error . message } `
148+ throw keepStack (
149+ error ,
150+ new BadRequestError (
151+ `Cannot update device "${ device . _id } ": ${ error . message } `
152+ )
150153 ) ;
151154 } )
152155 ) ;
@@ -161,8 +164,11 @@ export class MeasureService {
161164 device . _source
162165 )
163166 . catch ( ( error ) => {
164- throw new BadRequestError (
165- `Cannot update engine device "${ device . _id } ": ${ error . message } `
167+ throw keepStack (
168+ error ,
169+ new BadRequestError (
170+ `Cannot update engine device "${ device . _id } ": ${ error . message } `
171+ )
166172 ) ;
167173 } )
168174 ) ;
@@ -200,19 +206,19 @@ export class MeasureService {
200206 measure : {
201207 // Filter measures who are not in the asset device link
202208 names : measures
203- . filter ( ( m ) => Boolean ( m . asset . measureName ) )
204- . map ( ( m ) => m . asset . measureName ) ,
209+ . filter ( ( m ) => Boolean ( m . asset ? .measureName ) )
210+ . map ( ( m ) => m . asset ? .measureName ) ,
205211 } ,
206212 name : "measure" ,
207213 } ;
208214
209- const metadataDiff = this . compareMetadata (
215+ const changes = objectDiff (
210216 originalAssetMetadata ,
211217 updatedAsset . _source . metadata
212218 ) ;
213- if ( metadataDiff . length !== 0 ) {
219+ if ( changes . length !== 0 ) {
214220 ( event as unknown as AssetHistoryEventMetadata ) . metadata = {
215- names : metadataDiff ,
221+ names : changes ,
216222 } ;
217223 }
218224
@@ -222,8 +228,11 @@ export class MeasureService {
222228 ) ;
223229 } )
224230 . catch ( ( error ) => {
225- throw new BadRequestError (
226- `Cannot update asset "${ asset . _id } ": ${ error . message } `
231+ throw keepStack (
232+ error ,
233+ new BadRequestError (
234+ `Cannot update asset "${ asset . _id } ": ${ error . message } `
235+ )
227236 ) ;
228237 } )
229238 ) ;
@@ -257,18 +266,6 @@ export class MeasureService {
257266 } ) ;
258267 }
259268
260- private compareMetadata ( before : JSONObject , after : JSONObject ) : string [ ] {
261- const names : string [ ] = [ ] ;
262-
263- for ( const [ key , value ] of Object . entries ( before ) ) {
264- if ( after [ key ] !== value ) {
265- names . push ( key ) ;
266- }
267- }
268-
269- return names ;
270- }
271-
272269 private updateDeviceMeasures (
273270 device : KDocument < DeviceContent > ,
274271 measurements : MeasureContent [ ]
0 commit comments