Modifying an array property of a resource (participant) during a transaction
up vote
0
down vote
favorite
I want to modify a property of a participant which is an array of relationships during a transaction.
Let's assume I have a user that holds an array of keys like so:
participant User identified by userId {
o String userId
--> Key keys
}
asset Key identified by keyId {
o String keyId
}
transaction modifyUserKeys {
--> User user
}
Then in the transaction processor function I modify the array (as in adding and removing elements in it) and update the participant:
function modifyUserKeys(tx) {
let user = tx.user;
// create a new key via factory
var newKey = ...
user.keys.push(newKey);
return getParticipantRegistry('com.sample.User')
.then(function (participantRegistry) {
return participantRegistry.update(user);
});
}
In the documentation I saw a method called addArrayValue() which adds an element to an array. Now I'm unsure whether I'm meant to use this over conventional array manipulation like in my example.
What purpose does this addArrayValue() method have and am I able to e.g. remove elements from keys via keys.pop() or is it restricted to just the addition of new elements like the documentation suggests?
hyperledger-composer
add a comment |
up vote
0
down vote
favorite
I want to modify a property of a participant which is an array of relationships during a transaction.
Let's assume I have a user that holds an array of keys like so:
participant User identified by userId {
o String userId
--> Key keys
}
asset Key identified by keyId {
o String keyId
}
transaction modifyUserKeys {
--> User user
}
Then in the transaction processor function I modify the array (as in adding and removing elements in it) and update the participant:
function modifyUserKeys(tx) {
let user = tx.user;
// create a new key via factory
var newKey = ...
user.keys.push(newKey);
return getParticipantRegistry('com.sample.User')
.then(function (participantRegistry) {
return participantRegistry.update(user);
});
}
In the documentation I saw a method called addArrayValue() which adds an element to an array. Now I'm unsure whether I'm meant to use this over conventional array manipulation like in my example.
What purpose does this addArrayValue() method have and am I able to e.g. remove elements from keys via keys.pop() or is it restricted to just the addition of new elements like the documentation suggests?
hyperledger-composer
you can use conventional (push/pop) if you like and as you've done, butnewKeywould need to benewRelationship()see - useful example -> github.com/hyperledger/composer-sample-networks/blob/master/… in Composer sample networks -addArrayValue()is also validating that it does not violate the model
– Paul O'Mahony
Nov 19 at 11:48
Thanks for the clarification, that's also a good example.
– Janine Kostka
Nov 20 at 9:36
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I want to modify a property of a participant which is an array of relationships during a transaction.
Let's assume I have a user that holds an array of keys like so:
participant User identified by userId {
o String userId
--> Key keys
}
asset Key identified by keyId {
o String keyId
}
transaction modifyUserKeys {
--> User user
}
Then in the transaction processor function I modify the array (as in adding and removing elements in it) and update the participant:
function modifyUserKeys(tx) {
let user = tx.user;
// create a new key via factory
var newKey = ...
user.keys.push(newKey);
return getParticipantRegistry('com.sample.User')
.then(function (participantRegistry) {
return participantRegistry.update(user);
});
}
In the documentation I saw a method called addArrayValue() which adds an element to an array. Now I'm unsure whether I'm meant to use this over conventional array manipulation like in my example.
What purpose does this addArrayValue() method have and am I able to e.g. remove elements from keys via keys.pop() or is it restricted to just the addition of new elements like the documentation suggests?
hyperledger-composer
I want to modify a property of a participant which is an array of relationships during a transaction.
Let's assume I have a user that holds an array of keys like so:
participant User identified by userId {
o String userId
--> Key keys
}
asset Key identified by keyId {
o String keyId
}
transaction modifyUserKeys {
--> User user
}
Then in the transaction processor function I modify the array (as in adding and removing elements in it) and update the participant:
function modifyUserKeys(tx) {
let user = tx.user;
// create a new key via factory
var newKey = ...
user.keys.push(newKey);
return getParticipantRegistry('com.sample.User')
.then(function (participantRegistry) {
return participantRegistry.update(user);
});
}
In the documentation I saw a method called addArrayValue() which adds an element to an array. Now I'm unsure whether I'm meant to use this over conventional array manipulation like in my example.
What purpose does this addArrayValue() method have and am I able to e.g. remove elements from keys via keys.pop() or is it restricted to just the addition of new elements like the documentation suggests?
hyperledger-composer
hyperledger-composer
asked Nov 18 at 8:00
Janine Kostka
103
103
you can use conventional (push/pop) if you like and as you've done, butnewKeywould need to benewRelationship()see - useful example -> github.com/hyperledger/composer-sample-networks/blob/master/… in Composer sample networks -addArrayValue()is also validating that it does not violate the model
– Paul O'Mahony
Nov 19 at 11:48
Thanks for the clarification, that's also a good example.
– Janine Kostka
Nov 20 at 9:36
add a comment |
you can use conventional (push/pop) if you like and as you've done, butnewKeywould need to benewRelationship()see - useful example -> github.com/hyperledger/composer-sample-networks/blob/master/… in Composer sample networks -addArrayValue()is also validating that it does not violate the model
– Paul O'Mahony
Nov 19 at 11:48
Thanks for the clarification, that's also a good example.
– Janine Kostka
Nov 20 at 9:36
you can use conventional (
push/pop) if you like and as you've done, but newKey would need to be newRelationship() see - useful example -> github.com/hyperledger/composer-sample-networks/blob/master/… in Composer sample networks - addArrayValue() is also validating that it does not violate the model– Paul O'Mahony
Nov 19 at 11:48
you can use conventional (
push/pop) if you like and as you've done, but newKey would need to be newRelationship() see - useful example -> github.com/hyperledger/composer-sample-networks/blob/master/… in Composer sample networks - addArrayValue() is also validating that it does not violate the model– Paul O'Mahony
Nov 19 at 11:48
Thanks for the clarification, that's also a good example.
– Janine Kostka
Nov 20 at 9:36
Thanks for the clarification, that's also a good example.
– Janine Kostka
Nov 20 at 9:36
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
you can use conventional (push/pop) if you like (and as you've done on the array), but newKey would need to use newRelationship()
a useful example similar to what you're trying to achieve is here -> https://github.com/hyperledger/composer-sample-networks/blob/master/packages/fund-clearing-network/lib/clearing.js#L151 in Composer sample networks - addArrayValue() is also validating that it does not violate the model
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
you can use conventional (push/pop) if you like (and as you've done on the array), but newKey would need to use newRelationship()
a useful example similar to what you're trying to achieve is here -> https://github.com/hyperledger/composer-sample-networks/blob/master/packages/fund-clearing-network/lib/clearing.js#L151 in Composer sample networks - addArrayValue() is also validating that it does not violate the model
add a comment |
up vote
0
down vote
accepted
you can use conventional (push/pop) if you like (and as you've done on the array), but newKey would need to use newRelationship()
a useful example similar to what you're trying to achieve is here -> https://github.com/hyperledger/composer-sample-networks/blob/master/packages/fund-clearing-network/lib/clearing.js#L151 in Composer sample networks - addArrayValue() is also validating that it does not violate the model
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
you can use conventional (push/pop) if you like (and as you've done on the array), but newKey would need to use newRelationship()
a useful example similar to what you're trying to achieve is here -> https://github.com/hyperledger/composer-sample-networks/blob/master/packages/fund-clearing-network/lib/clearing.js#L151 in Composer sample networks - addArrayValue() is also validating that it does not violate the model
you can use conventional (push/pop) if you like (and as you've done on the array), but newKey would need to use newRelationship()
a useful example similar to what you're trying to achieve is here -> https://github.com/hyperledger/composer-sample-networks/blob/master/packages/fund-clearing-network/lib/clearing.js#L151 in Composer sample networks - addArrayValue() is also validating that it does not violate the model
answered 2 days ago
Paul O'Mahony
5,5631412
5,5631412
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53358941%2fmodifying-an-array-property-of-a-resource-participant-during-a-transaction%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
you can use conventional (
push/pop) if you like and as you've done, butnewKeywould need to benewRelationship()see - useful example -> github.com/hyperledger/composer-sample-networks/blob/master/… in Composer sample networks -addArrayValue()is also validating that it does not violate the model– Paul O'Mahony
Nov 19 at 11:48
Thanks for the clarification, that's also a good example.
– Janine Kostka
Nov 20 at 9:36