Merge pull request #42 from 67P/feature/filter-contributors-by-account

Add filter and find by account function to contributors
This commit is contained in:
fsmanuel 2018-04-26 14:27:26 +00:00 committed by GitHub
commit da2f951bdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -34,6 +34,30 @@ class Contributor extends Base {
});
}
filterByAccount(search) {
return this._byAccount(search, 'filter');
}
findByAccount(search) {
return this._byAccount(search, 'find');
}
_byAccount(search, method = 'filter') {
return this.all().then((contributors) => {
const searchEntries = Object.entries(search);
return contributors[method]((contributor) => {
if (!contributor.accounts) { return false; }
return contributor.accounts.find((account) => {
return searchEntries.every((item) => {
let [ key, value ] = item;
return account[key] === value;
});
});
});
});
}
add(contributorAttr, callOptions = {}) {
let json = ContributorSerializer.serialize(contributorAttr);
// TODO: validate against schema