-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kzlprd 166 upsert assets #323
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you add some tests too, please ?
upsert: { | ||
handler: this.upsert.bind(this), | ||
http: [ | ||
{ path: "device-manager/:engineId/assets/:_id", verb: "post" }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This path does not reflect the behaviour of this action
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I used POST by following this : https://docs.kuzzle.io/core/2/api/controllers/document/upsert/
Should I change it to PUT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nah, you are right I though the path was the same as the update action, but nvm it's okay :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no problem !
# [2.4.0-temp-ci-debug.1](v2.3.2...v2.4.0-temp-ci-debug.1) (2024-01-11) ### Bug Fixes * **asset_migration:** fixes multiple assets migration and optimize ([fd546cf](fd546cf)) * **assetsGroups:** disable checkRights on impersonate ([#325](#325)) ([eaa3edc](eaa3edc)) * **assets:** migrate tenant only if user is admin ([c24f942](c24f942)) * **assetsMigrateTenant:** add type for frontend and fix admin only ([e249f13](e249f13)) * **ci:** correct github token in ci ([a5a6b69](a5a6b69)) * copy-version script ([72b5e49](72b5e49)) * correct KuzzleRequest for pipes ([ef932d1](ef932d1)) * **export:** correct scroll in getNamedMeasures ([05fe4fd](05fe4fd)) * improve get internal devices documents ([03ccb29](03ccb29)) * **migrateTenant:** clear groups of newly created assets ([79f6a5a](79f6a5a)) * **npm:** fix repository url ([514dc59](514dc59)) * update semantic-release ([380c8b3](380c8b3)) ### Features * **asset:** add upsert method ([#323](#323)) ([5f87787](5f87787)) * **assets:** assets migrate tenant ([5f05101](5f05101)) * digitaltwin exports ([#315](#315)) ([aab65af](aab65af)) * **digitalTwin:** allow to modify mapping from application ([#322](#322)) ([89d375a](89d375a)) * **digitalTwin:** implement generic document pipes triggers ([#321](#321)) ([60a21fc](60a21fc)) * improve export ([#316](#316)) ([51db84a](51db84a)) * **measures:** add lastMeasuredAt on DigitalTwin ([#314](#314)) ([05b8a53](05b8a53))
# [2.4.0-temp-ci-debug.1](v2.3.2...v2.4.0-temp-ci-debug.1) (2024-01-11) ### Bug Fixes * **asset_migration:** fixes multiple assets migration and optimize ([fd546cf](fd546cf)) * **assetsGroups:** disable checkRights on impersonate ([#325](#325)) ([eaa3edc](eaa3edc)) * **assets:** migrate tenant only if user is admin ([c24f942](c24f942)) * **assetsMigrateTenant:** add type for frontend and fix admin only ([e249f13](e249f13)) * **ci:** correct github token in ci ([a5a6b69](a5a6b69)) * copy-version script ([72b5e49](72b5e49)) * correct KuzzleRequest for pipes ([ef932d1](ef932d1)) * **export:** correct scroll in getNamedMeasures ([05fe4fd](05fe4fd)) * improve get internal devices documents ([03ccb29](03ccb29)) * **migrateTenant:** clear groups of newly created assets ([79f6a5a](79f6a5a)) * **npm:** fix repository url ([514dc59](514dc59)) * update semantic-release ([380c8b3](380c8b3)) ### Features * **asset:** add upsert method ([#323](#323)) ([5f87787](5f87787)) * **assets:** assets migrate tenant ([5f05101](5f05101)) * digitaltwin exports ([#315](#315)) ([aab65af](aab65af)) * **digitalTwin:** allow to modify mapping from application ([#322](#322)) ([89d375a](89d375a)) * **digitalTwin:** implement generic document pipes triggers ([#321](#321)) ([60a21fc](60a21fc)) * improve export ([#316](#316)) ([51db84a](51db84a)) * **measures:** add lastMeasuredAt on DigitalTwin ([#314](#314)) ([05b8a53](05b8a53))
# [2.4.0-temp-ci-debug.1](v2.3.2...v2.4.0-temp-ci-debug.1) (2024-01-11) ### Bug Fixes * **asset_migration:** fixes multiple assets migration and optimize ([fd546cf](fd546cf)) * **assetsGroups:** disable checkRights on impersonate ([#325](#325)) ([eaa3edc](eaa3edc)) * **assets:** migrate tenant only if user is admin ([c24f942](c24f942)) * **assetsMigrateTenant:** add type for frontend and fix admin only ([e249f13](e249f13)) * **ci:** correct github token in ci ([a5a6b69](a5a6b69)) * copy-version script ([72b5e49](72b5e49)) * correct KuzzleRequest for pipes ([ef932d1](ef932d1)) * **export:** correct scroll in getNamedMeasures ([05fe4fd](05fe4fd)) * improve get internal devices documents ([03ccb29](03ccb29)) * **migrateTenant:** clear groups of newly created assets ([79f6a5a](79f6a5a)) * **npm:** fix repository url ([514dc59](514dc59)) * update semantic-release ([380c8b3](380c8b3)) ### Features * **asset:** add upsert method ([#323](#323)) ([5f87787](5f87787)) * **assets:** assets migrate tenant ([5f05101](5f05101)) * digitaltwin exports ([#315](#315)) ([aab65af](aab65af)) * **digitalTwin:** allow to modify mapping from application ([#322](#322)) ([89d375a](89d375a)) * **digitalTwin:** implement generic document pipes triggers ([#321](#321)) ([60a21fc](60a21fc)) * improve export ([#316](#316)) ([51db84a](51db84a)) * **measures:** add lastMeasuredAt on DigitalTwin ([#314](#314)) ([05b8a53](05b8a53))
# [2.4.0-elasticsearch-8.1](v2.3.2...v2.4.0-elasticsearch-8.1) (2024-08-06) ### Bug Fixes * **asset_migration:** fixes multiple assets migration and optimize ([fd546cf](fd546cf)) * **assetsGroups:** disable checkRights on impersonate ([#325](#325)) ([eaa3edc](eaa3edc)) * **assets:** migrate tenant only if user is admin ([c24f942](c24f942)) * **assetsMigrateTenant:** add type for frontend and fix admin only ([e249f13](e249f13)) * catch errors when updating the mappings on startup ([#338](#338)) ([e09c5a3](e09c5a3)) * **ci:** correct github token in ci ([a5a6b69](a5a6b69)) * **ci:** fix npm glob not working anymore ([18e79aa](18e79aa)) * copy-version script ([72b5e49](72b5e49)) * correct api types ([#333](#333)) ([05c426f](05c426f)) * correct KuzzleRequest for pipes ([ef932d1](ef932d1)) * correct release script ([f02c285](f02c285)) * **device:** correct device HTTP API ([#354](#354)) ([d9fe9e1](d9fe9e1)) * **engine:** update conflicts ask return values ([0f817c3](0f817c3)) * **export:** correct scroll in getNamedMeasures ([05fe4fd](05fe4fd)) * improve get internal devices documents ([03ccb29](03ccb29)) * improve measure export to be usable with multiple measures in one measure ([#330](#330)) ([dab8d57](dab8d57)) * **migrateTenant:** clear groups of newly created assets ([79f6a5a](79f6a5a)) * **models:** list asset returns commons assets ([#345](#345)) ([2844437](2844437)) * **npm:** fix repository url ([514dc59](514dc59)) * update semantic-release ([380c8b3](380c8b3)) ### Features * add group descriptions to models ([#335](#335)) ([de00fb7](de00fb7)) * add log in decoders ([#339](#339)) ([fe08b7c](fe08b7c)) * add tooltip model by asset model ([#341](#341)) ([865ae6d](865ae6d)) * add UTC export by default for devices and assets ([#342](#342)) ([878ca58](878ca58)) * **asset:** add upsert method ([#323](#323)) ([5f87787](5f87787)) * **assets:** assets migrate tenant ([5f05101](5f05101)) * **assets:** remove assetId in upsert ([#326](#326)) ([2f286de](2f286de)) * **configuration:** allow to specify Elasticsearch index settings ([#337](#337)) ([6d22fa9](6d22fa9)) * digitaltwin exports ([#315](#315)) ([aab65af](aab65af)) * **digitalTwin:** allow to modify mapping from application ([#322](#322)) ([89d375a](89d375a)) * **digitalTwin:** implement generic document pipes triggers ([#321](#321)) ([60a21fc](60a21fc)) * **engine:** add mappings update conflict ask call ([#340](#340)) ([5cd6aca](5cd6aca)) * implement comprehensible metadata ([#332](#332)) ([e80ef8e](e80ef8e)) * improve export ([#316](#316)) ([51db84a](51db84a)) * **measure:** add device metadata to origin ([#356](#356)) ([1ed9d8b](1ed9d8b)) * **measuremodels:** add optional local names and unit to measure definitions ([#343](#343)) ([50038b2](50038b2)) * **measures:** add lastMeasuredAt on DigitalTwin ([#314](#314)) ([05b8a53](05b8a53)) * **metadata:** add support nested metadata properties ([#348](#348)) ([17eda8b](17eda8b)) * **metadata:** improve asset metadata ([#346](#346)) ([2eb5887](2eb5887)) * patch-in support for ES 8 ([6afbe79](6afbe79)) * upsert devices ([#355](#355)) ([c75abef](c75abef))
# [2.4.0-dev.1](v2.3.2...v2.4.0-dev.1) (2024-09-27) ### Bug Fixes * add specific dev branch in releaserc.js ([e11a823](e11a823)) * **asset_migration:** fixes multiple assets migration and optimize ([fd546cf](fd546cf)) * **assetsGroups:** disable checkRights on impersonate ([#325](#325)) ([eaa3edc](eaa3edc)) * **assets:** migrate tenant only if user is admin ([c24f942](c24f942)) * **assetsMigrateTenant:** add type for frontend and fix admin only ([e249f13](e249f13)) * catch errors when updating the mappings on startup ([#338](#338)) ([e09c5a3](e09c5a3)) * **ci:** correct github token in ci ([a5a6b69](a5a6b69)) * **ci:** fix npm glob not working anymore ([18e79aa](18e79aa)) * copy-version script ([72b5e49](72b5e49)) * correct api types ([#333](#333)) ([05c426f](05c426f)) * correct KuzzleRequest for pipes ([ef932d1](ef932d1)) * correct release script ([f02c285](f02c285)) * **device-metadata:** fetch device's metadata from assigned tenant when available ([#374](#374)) ([acfd8a0](acfd8a0)) * **device:** correct device HTTP API ([#354](#354)) ([d9fe9e1](d9fe9e1)) * **engine:** update conflicts ask return values ([0f817c3](0f817c3)) * **export:** correct scroll in getNamedMeasures ([05fe4fd](05fe4fd)) * improve get internal devices documents ([03ccb29](03ccb29)) * improve measure export to be usable with multiple measures in one measure ([#330](#330)) ([dab8d57](dab8d57)) * **migrateTenant:** clear groups of newly created assets ([79f6a5a](79f6a5a)) * **models:** list asset returns commons assets ([#345](#345)) ([2844437](2844437)) * **npm:** fix repository url ([514dc59](514dc59)) * only list asset models for the requested engine group ([#367](#367)) ([8a14207](8a14207)) * update semantic-release ([380c8b3](380c8b3)) ### Features * add actions to get last measures on digital twins ([#363](#363)) ([b8005a2](b8005a2)) * add dev builds when pushing on 2-dev ([#375](#375)) ([aa11885](aa11885)) * add group descriptions to models ([#335](#335)) ([de00fb7](de00fb7)) * add log in decoders ([#339](#339)) ([fe08b7c](fe08b7c)) * add search actions for the models ([#362](#362)) ([9990e57](9990e57)) * add tooltip model by asset model ([#341](#341)) ([865ae6d](865ae6d)) * add UTC export by default for devices and assets ([#342](#342)) ([878ca58](878ca58)) * **asset:** add upsert method ([#323](#323)) ([5f87787](5f87787)) * **assetrole:** add link / unlink device action to asset admin role ([#357](#357)) ([febf3a6](febf3a6)) * **assets:** assets migrate tenant ([5f05101](5f05101)) * **assets:** remove assetId in upsert ([#326](#326)) ([2f286de](2f286de)) * **configuration:** allow to specify Elasticsearch index settings ([#337](#337)) ([6d22fa9](6d22fa9)) * digitaltwin exports ([#315](#315)) ([aab65af](aab65af)) * **digitalTwin:** allow to modify mapping from application ([#322](#322)) ([89d375a](89d375a)) * **digitalTwin:** implement generic document pipes triggers ([#321](#321)) ([60a21fc](60a21fc)) * **engine:** add mappings update conflict ask call ([#340](#340)) ([5cd6aca](5cd6aca)) * implement comprehensible metadata ([#332](#332)) ([e80ef8e](e80ef8e)) * improve export ([#316](#316)) ([51db84a](51db84a)) * improve search model request types ([#364](#364)) ([5310ad1](5310ad1)) * **measure:** add device metadata to origin ([#356](#356)) ([1ed9d8b](1ed9d8b)) * **measuremodels:** add optional local names and unit to measure definitions ([#343](#343)) ([50038b2](50038b2)) * **measures:** add lastMeasuredAt on DigitalTwin ([#314](#314)) ([05b8a53](05b8a53)) * **metadata:** add option field readOnly to prevent editing ([#358](#358)) ([e0641b4](e0641b4)) * **metadata:** add optional editor hints for metadata ([#370](#370)) ([afc5129](afc5129)) * **metadata:** add support nested metadata properties ([#348](#348)) ([17eda8b](17eda8b)) * **metadata:** improve asset metadata ([#346](#346)) ([2eb5887](2eb5887)) * **roles:** add specific roles for assets and devices ([#365](#365)) ([a01982c](a01982c)) * upsert devices ([#355](#355)) ([c75abef](c75abef))
# [2.4.0](v2.3.2...v2.4.0) (2024-10-01) ### Bug Fixes * add specific dev branch in releaserc.js ([e11a823](e11a823)) * **asset_migration:** fixes multiple assets migration and optimize ([fd546cf](fd546cf)) * **assetsGroups:** disable checkRights on impersonate ([#325](#325)) ([eaa3edc](eaa3edc)) * **assets:** migrate tenant only if user is admin ([c24f942](c24f942)) * **assetsMigrateTenant:** add type for frontend and fix admin only ([e249f13](e249f13)) * catch errors when updating the mappings on startup ([#338](#338)) ([e09c5a3](e09c5a3)) * **ci:** correct github token in ci ([a5a6b69](a5a6b69)) * **ci:** fix npm glob not working anymore ([18e79aa](18e79aa)) * copy-version script ([72b5e49](72b5e49)) * correct api types ([#333](#333)) ([05c426f](05c426f)) * correct KuzzleRequest for pipes ([ef932d1](ef932d1)) * correct release script ([f02c285](f02c285)) * **device-metadata:** fetch device's metadata from assigned tenant when available ([#374](#374)) ([acfd8a0](acfd8a0)) * **device:** correct device HTTP API ([#354](#354)) ([d9fe9e1](d9fe9e1)) * **engine:** update conflicts ask return values ([0f817c3](0f817c3)) * **export:** correct scroll in getNamedMeasures ([05fe4fd](05fe4fd)) * improve get internal devices documents ([03ccb29](03ccb29)) * improve measure export to be usable with multiple measures in one measure ([#330](#330)) ([dab8d57](dab8d57)) * **migrateTenant:** clear groups of newly created assets ([79f6a5a](79f6a5a)) * **models:** list asset returns commons assets ([#345](#345)) ([2844437](2844437)) * **npm:** fix repository url ([514dc59](514dc59)) * only list asset models for the requested engine group ([#367](#367)) ([8a14207](8a14207)) * update semantic-release ([380c8b3](380c8b3)) ### Features * add actions to get last measures on digital twins ([#363](#363)) ([b8005a2](b8005a2)) * add dev builds when pushing on 2-dev ([#375](#375)) ([aa11885](aa11885)) * add group descriptions to models ([#335](#335)) ([de00fb7](de00fb7)) * add log in decoders ([#339](#339)) ([fe08b7c](fe08b7c)) * add search actions for the models ([#362](#362)) ([9990e57](9990e57)) * add tooltip model by asset model ([#341](#341)) ([865ae6d](865ae6d)) * add UTC export by default for devices and assets ([#342](#342)) ([878ca58](878ca58)) * **asset:** add upsert method ([#323](#323)) ([5f87787](5f87787)) * **assetrole:** add link / unlink device action to asset admin role ([#357](#357)) ([febf3a6](febf3a6)) * **assets:** assets migrate tenant ([5f05101](5f05101)) * **assets:** remove assetId in upsert ([#326](#326)) ([2f286de](2f286de)) * **configuration:** allow to specify Elasticsearch index settings ([#337](#337)) ([6d22fa9](6d22fa9)) * digitaltwin exports ([#315](#315)) ([aab65af](aab65af)) * **digitalTwin:** allow to modify mapping from application ([#322](#322)) ([89d375a](89d375a)) * **digitalTwin:** implement generic document pipes triggers ([#321](#321)) ([60a21fc](60a21fc)) * **engine:** add mappings update conflict ask call ([#340](#340)) ([5cd6aca](5cd6aca)) * implement comprehensible metadata ([#332](#332)) ([e80ef8e](e80ef8e)) * improve export ([#316](#316)) ([51db84a](51db84a)) * improve search model request types ([#364](#364)) ([5310ad1](5310ad1)) * **measure:** add device metadata to origin ([#356](#356)) ([1ed9d8b](1ed9d8b)) * **measuremodels:** add optional local names and unit to measure definitions ([#343](#343)) ([50038b2](50038b2)) * **measures:** add lastMeasuredAt on DigitalTwin ([#314](#314)) ([05b8a53](05b8a53)) * **metadata:** add option field readOnly to prevent editing ([#358](#358)) ([e0641b4](e0641b4)) * **metadata:** add optional editor hints for metadata ([#370](#370)) ([afc5129](afc5129)) * **metadata:** add support nested metadata properties ([#348](#348)) ([17eda8b](17eda8b)) * **metadata:** improve asset metadata ([#346](#346)) ([2eb5887](2eb5887)) * **roles:** add specific roles for assets and devices ([#365](#365)) ([a01982c](a01982c)) * upsert devices ([#355](#355)) ([c75abef](c75abef))
What does this PR do ?
This PR adds an upsert method in the AssetService. The upsert method is designed to update an existing asset with new metadata, or create a new asset if one does not already exist with the specified assetId.
How should this be manually tested?
npm run test:functional
Other changes
Boyscout