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 ContributionSerializer = require('../serializers/contribution');
const paged = require('../utils/pagination');
class Contribution extends Base { class Contribution extends Record {
all(options = {}) { get count () {
return this.functions.contributionsCount() return this.functions.contributionsCount();
.then((count) => {
let records = paged(count, options).map((id) => this.getById(id));
return Promise.all(records);
});
} }
getById(id) { getById(id) {

View File

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

View File

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