From 28833bc00ac46bc3c1ec60430a2bd8ddd011bd23 Mon Sep 17 00:00:00 2001 From: marcus Date: Fri, 24 Nov 2017 23:11:04 +0100 Subject: [PATCH 1/6] added "get all" feature to retrieve action if payload has no id property Signed-off-by: marcus --- .../nodes/hyperledger-composer.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/node-red-contrib-composer/nodes/hyperledger-composer.js b/packages/node-red-contrib-composer/nodes/hyperledger-composer.js index d6fa43f..993e83a 100644 --- a/packages/node-red-contrib-composer/nodes/hyperledger-composer.js +++ b/packages/node-red-contrib-composer/nodes/hyperledger-composer.js @@ -192,9 +192,19 @@ module.exports = function (RED) { node.log('got asset registry'); if (resolve) { - return assetRegistry.resolve(id); + if (id == null) { + return assetRegistry.resolveAll(); + } + else { + return assetRegistry.resolve(id); + } } else { + if (id == null) { + return assetRegistry.getAll(); + } + else { return assetRegistry.get(id); + } } }) .then((result) => { @@ -213,7 +223,12 @@ module.exports = function (RED) { return businessNetworkConnection.getParticipantRegistry(modelName) .then((participantRegistry) => { node.log('got participant registry'); - return participantRegistry.get(id); + if (id == null) { + return assetRegistry.resolveAll(); + } + else { + return participantRegistry.get(id); + } }) .then((result) => { node.log('got participant'); From cf10413329cef3ec45a96e292a0849ee73e41072 Mon Sep 17 00:00:00 2001 From: marcus Date: Sat, 25 Nov 2017 00:00:38 +0100 Subject: [PATCH 2/6] removed id check for retrieve action Signed-off-by: marcus --- .../node-red-contrib-composer/nodes/hyperledger-composer.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/node-red-contrib-composer/nodes/hyperledger-composer.js b/packages/node-red-contrib-composer/nodes/hyperledger-composer.js index 993e83a..a686c41 100644 --- a/packages/node-red-contrib-composer/nodes/hyperledger-composer.js +++ b/packages/node-red-contrib-composer/nodes/hyperledger-composer.js @@ -394,12 +394,6 @@ module.exports = function (RED) { if (!payLoad.$class) { throw new Error('$class not set in payload'); } - - if (type === RETRIEVE) { - if (!payLoad.id) { - throw new Error('id not set in payload'); - } - } }); } From ea03f8bb17851a4dc6fc642c21750b2862796f9a Mon Sep 17 00:00:00 2001 From: marcus Date: Tue, 28 Nov 2017 12:07:54 +0100 Subject: [PATCH 3/6] use getAll instead of resolveAll for retrieval of participants Signed-off-by: marcus --- .../node-red-contrib-composer/nodes/hyperledger-composer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/node-red-contrib-composer/nodes/hyperledger-composer.js b/packages/node-red-contrib-composer/nodes/hyperledger-composer.js index a686c41..2d63ba2 100644 --- a/packages/node-red-contrib-composer/nodes/hyperledger-composer.js +++ b/packages/node-red-contrib-composer/nodes/hyperledger-composer.js @@ -224,7 +224,7 @@ module.exports = function (RED) { .then((participantRegistry) => { node.log('got participant registry'); if (id == null) { - return assetRegistry.resolveAll(); + return assetRegistry.getAll(); } else { return participantRegistry.get(id); From 3610f7c393222aa76c4ed38dbdd2e93f96051c2e Mon Sep 17 00:00:00 2001 From: marcus Date: Mon, 4 Dec 2017 11:46:07 +0100 Subject: [PATCH 4/6] implemented resolve feature for participant objects as part of retrieve action Signed-off-by: marcus --- .../nodes/hyperledger-composer.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/node-red-contrib-composer/nodes/hyperledger-composer.js b/packages/node-red-contrib-composer/nodes/hyperledger-composer.js index 2d63ba2..69cec52 100644 --- a/packages/node-red-contrib-composer/nodes/hyperledger-composer.js +++ b/packages/node-red-contrib-composer/nodes/hyperledger-composer.js @@ -223,11 +223,20 @@ module.exports = function (RED) { return businessNetworkConnection.getParticipantRegistry(modelName) .then((participantRegistry) => { node.log('got participant registry'); - if (id == null) { - return assetRegistry.getAll(); - } - else { - return participantRegistry.get(id); + if (resolve) { + if (id == null) { + return participantRegistry.resolveAll(); + } + else { + return participantRegistry.resolve(id); + } + } else { + if (id == null) { + return participantRegistry.getAll(); + } + else { + return participantRegistry.get(id); + } } }) .then((result) => { From 543cf0e1b6e690bb79d93e4e6cd257ed09b74ce8 Mon Sep 17 00:00:00 2001 From: marcus Date: Mon, 4 Dec 2017 12:02:18 +0100 Subject: [PATCH 5/6] formatting changes to have headings rendered properly on github Signed-off-by: marcus --- packages/node-red-contrib-composer/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/node-red-contrib-composer/README.md b/packages/node-red-contrib-composer/README.md index 50c1db9..98522ef 100644 --- a/packages/node-red-contrib-composer/README.md +++ b/packages/node-red-contrib-composer/README.md @@ -1,12 +1,12 @@ -#node-red-contrib-hyperledger-composer +# node-red-contrib-hyperledger-composer A set of nodes for interacting with Hyperledger Composer *Note : These node will only work if you are running node red locally. It won't work if you are using node red on bluemix.* -##Hyperledger-Composer-Out +## Hyperledger-Composer-Out A node red output node that allows you to create, update or delete assets or participants and submit transactions. -###Example Usage +### Example Usage This example uses the Car Auction Sample Network that can be obtained from [here](https://github.com/hyperledger/composer-sample-networks/tree/master/packages/carauction-network) The Car Auction Sample, simulates a car auction. It has two kinds of participant. An Auctioneer, who is responsible for conducting the auction, and a member who can bid on cars in the auction. @@ -26,10 +26,10 @@ In this example we will create a participant, the participant . 5. Using the playground or command line you should now be able to see the participant that has been created. -##Hyperledger-Composer-Mid +## Hyperledger-Composer-Mid A node red mid flow node that allows you to create, retrieve, update, or delete assets and participants from a registry. -###Example Usage +### Example Usage This example follows on from the above example. It will retrieve the participant that was created above. 1. Create a `hyperledger-composer-mid node` @@ -44,7 +44,7 @@ This example follows on from the above example. It will retrieve the participant 4. Use a `debug node` to capture the output from the `hyperledger-composer-mid node` -##Hyperledger-Composer-In +## Hyperledger-Composer-In A node red input node that subscribes to events from a blockchain 1. On `Composer Card` click the pencil top add a new config node. Specify the `card name`, or use the drop down to use one previous created. From 18d28ac2fd0dd2b1e15237d0d297d8e8e0a3ac6e Mon Sep 17 00:00:00 2001 From: marcus Date: Tue, 24 Apr 2018 14:14:39 +0200 Subject: [PATCH 6/6] added node info text for getAll/resolveAll feature Signed-off-by: marcus --- .../node-red-contrib-composer/nodes/hyperledger-composer.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/node-red-contrib-composer/nodes/hyperledger-composer.html b/packages/node-red-contrib-composer/nodes/hyperledger-composer.html index 638808a..12fc9d3 100644 --- a/packages/node-red-contrib-composer/nodes/hyperledger-composer.html +++ b/packages/node-red-contrib-composer/nodes/hyperledger-composer.html @@ -127,6 +127,9 @@

Hyperledger-Composer node. Gets an asset, or participant using the msg.payload.

The name of the resource or transaction should be set in msg.payload.$class

The id of the resource should be set in msg.payload.id

+

If msg.payload.id is not set and the action type is set to retrieve, +all resources of the given type msg.payload.$class will be retrieved. Additionally, +all resources will be resolved if the retrieve checkbox is checked.