diff --git a/lib/contracts/contributor.js b/lib/contracts/contributor.js index 3d8ce87..82b0c4f 100644 --- a/lib/contracts/contributor.js +++ b/lib/contracts/contributor.js @@ -58,6 +58,30 @@ class Contributor extends Record { return this.functions.addContributor(...contributor, callOptions); }); } + + updateProfile(contributorId, updateAttr, callOptions = {}) { + return this.getById(contributorId).then(async (contributor) => { + let updatedContributorAttr = Object.assign(contributor, updateAttr) + let updatedContributor = new ContributorSerializer(updatedContributorAttr); + + try { await updatedContributor.validate(); } + catch (error) { return Promise.reject(error); } + + const jsonStr = updatedContributor.serialize(); + + return this.ipfs + .add(jsonStr) + .then(ipfsHashAttr => { + return this.functions.updateContributorProfileHash( + contributorId, + ipfsHashAttr.hashDigest, + ipfsHashAttr.hashFunction, + ipfsHashAttr.hashSize, + callOptions + ); + }); + }); + } } module.exports = Contributor;