spee.ch/helpers/functions/getAllFreePublicClaims.js
Fillerino 7da97e2933 Semicolon rule added
Semicolon rule enforced as the main lbry-app uses semicolons!
2017-06-19 18:37:35 +02:00

64 lines
1.9 KiB
JavaScript

const isFreePublicClaim = require('./isFreePublicClaim.js');
const lbryApi = require('../libraries/lbryApi.js');
function filterForFreePublicClaims (claimsListArray) {
// console.log("claims list:", claimsListArray)
if (!claimsListArray) {
return null;
}
const freePublicClaims = claimsListArray.filter(claim => {
if (!claim.value) {
return false;
}
return isFreePublicClaim(claim);
});
return freePublicClaims;
}
function orderTopClaims (claimsListArray) {
console.log('>> orderTopClaims');
claimsListArray.sort(({ amountA, heightA }, { amountB, heightB }) => {
if (amountA === amountB) {
return heightA > heightB;
} else {
return amountA < amountB;
}
});
return claimsListArray;
}
module.exports = claimName => {
const deferred = new Promise((resolve, reject) => {
// make a call to the daemon to get the claims list
lbryApi
.getClaimsList(claimName)
.then(({ claims }) => {
const claimsList = claims;
console.log('>> Number of claims:', claimsList.length);
// return early if no claims were found
if (claimsList.length === 0) {
reject('NO_CLAIMS');
console.log('exiting due to lack of claims');
return;
}
// filter the claims to return only free, public claims
const freePublicClaims = filterForFreePublicClaims(claimsList);
// return early if no free, public claims were found
if (!freePublicClaims || freePublicClaims.length === 0) {
reject('NO_FREE_PUBLIC_CLAIMS');
console.log('exiting due to lack of free or public claims');
return;
}
// order the claims
const orderedPublicClaims = orderTopClaims(freePublicClaims);
// resolve the promise
resolve(orderedPublicClaims);
})
.catch(error => {
console.log(">> 'claim_list' error");
reject(error);
});
});
return deferred;
};