Add count property and DRY
This commit is contained in:
parent
f6189bf910
commit
6f97c905d6
@ -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) {
|
||||||
|
@ -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) {
|
||||||
|
@ -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
14
lib/contracts/record.js
Normal 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
|
Loading…
x
Reference in New Issue
Block a user