Refactor IPFS pinner
This commit is contained in:
32
lib/utils/ipfs-pinner.js
Normal file
32
lib/utils/ipfs-pinner.js
Normal file
@@ -0,0 +1,32 @@
|
||||
class IpfsPinner {
|
||||
constructor (kredits) {
|
||||
this.kredits = kredits;
|
||||
}
|
||||
|
||||
pinAll () {
|
||||
return Promise.all([
|
||||
this.kredits.Contributor.pinIpfsHashes(),
|
||||
this.kredits.Contribution.pinIpfsHashes(),
|
||||
]);
|
||||
}
|
||||
|
||||
monitor (callback) {
|
||||
this.kredits.Contribution.on('ContributionAdded', (id) => {
|
||||
this.kredits.Contribution.getData(id)
|
||||
.then(data => { return this.kredits.ipfs.pin(data); })
|
||||
.then(callback);
|
||||
});
|
||||
this.kredits.Contributor.on('ContributorAdded', (id) => {
|
||||
this.kredits.Contribution.getData(id)
|
||||
.then(data => { return this.kredits.ipfs.pin(data); })
|
||||
.then(callback);
|
||||
});
|
||||
this.kredits.Contributor.on('ContributorProfileUpdated', (id) => {
|
||||
this.kredits.Contributor.getData(id)
|
||||
.then(data => { return this.kredits.ipfs.pin(data); })
|
||||
.then(callback);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
module.exports = IpfsPinner;
|
||||
@@ -41,6 +41,14 @@ class IPFS {
|
||||
return this._ipfsAPI.cat(ipfsHash);
|
||||
}
|
||||
|
||||
pin (hashData) {
|
||||
let ipfsHash = hashData; // default - if it is a string
|
||||
if (hashData.hasOwnProperty('hashSize')) {
|
||||
ipfsHash = this.encodeHash(hashData);
|
||||
}
|
||||
return this._ipfsAPI.pin.add(multihashes.toB58String(ipfsHash));
|
||||
}
|
||||
|
||||
decodeHash (ipfsHash) {
|
||||
let multihash = multihashes.decode(multihashes.fromB58String(ipfsHash));
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user