Add count property and DRY

This commit is contained in:
fsmanuel 2019-04-13 13:05:47 +02:00
parent f6189bf910
commit 6f97c905d6
4 changed files with 26 additions and 27 deletions

View File

@ -1,14 +1,9 @@
const Base = require('./base');
const Record = require('./record');
const ContributionSerializer = require('../serializers/contribution');
const paged = require('../utils/pagination');
class Contribution extends Base {
all(options = {}) {
return this.functions.contributionsCount()
.then((count) => {
let records = paged(count, options).map((id) => this.getById(id));
return Promise.all(records);
});
class Contribution extends Record {
get count () {
return this.functions.contributionsCount();
}
getById(id) {

View File

@ -1,14 +1,9 @@
const Base = require('./base');
const Record = require('./record');
const ContributorSerializer = require('../serializers/contributor');
const paged = require('../utils/pagination');
class Contributor extends Base {
all(options = {}) {
return this.functions.contributorsCount()
.then((count) => {
let records = paged(count, options).map((id) => this.getById(id));
return Promise.all(records);
});
class Contributor extends Record {
get count () {
return this.functions.contributorsCount();
}
getById(id) {

View File

@ -1,14 +1,9 @@
const Base = require('./base');
const Record = require('./record');
const ContributionSerializer = require('../serializers/contribution');
const paged = require('../utils/pagination');
class Proposal extends Base {
all(options = {}) {
return this.functions.proposalsCount()
.then((count) => {
let records = paged(count, options).map((id) => this.getById(id));
return Promise.all(records);
});
class Proposal extends Record {
get count () {
return this.functions.proposalsCount();
}
getById(id) {

14
lib/contracts/record.js Normal file
View File

@ -0,0 +1,14 @@
const Base = require('./base');
const paged = require('../utils/pagination');
class Record extends Base {
all(options = {}) {
return this.count
.then((count) => {
let records = paged(count, options).map((id) => this.getById(id));
return Promise.all(records);
});
}
}
module.exports = Record