Add pagination for .all methods

I removed rsvp as a dependency as we only use Promise.all
This commit is contained in:
2019-04-12 21:20:06 +02:00
parent b6c06c289c
commit f6189bf910
6 changed files with 66 additions and 40 deletions

View File

@@ -1,20 +1,13 @@
const ethers = require('ethers');
const ContributionSerializer = require('../serializers/contribution');
const Base = require('./base');
const ContributionSerializer = require('../serializers/contribution');
const paged = require('../utils/pagination');
class Contribution extends Base {
all() {
all(options = {}) {
return this.functions.contributionsCount()
.then(async (count) => {
let contributions = [];
for (let id = 1; id <= count; id++) {
const contribution = await this.getById(id)
contributions.push(contribution);
}
return contributions;
.then((count) => {
let records = paged(count, options).map((id) => this.getById(id));
return Promise.all(records);
});
}

View File

@@ -1,19 +1,13 @@
const RSVP = require('rsvp');
const ContributorSerializer = require('../serializers/contributor');
const Base = require('./base');
const ContributorSerializer = require('../serializers/contributor');
const paged = require('../utils/pagination');
class Contributor extends Base {
all() {
all(options = {}) {
return this.functions.contributorsCount()
.then(count => {
let contributors = [];
for (let id = 1; id <= count; id++) {
contributors.push(this.getById(id));
}
return RSVP.all(contributors);
.then((count) => {
let records = paged(count, options).map((id) => this.getById(id));
return Promise.all(records);
});
}

View File

@@ -1,19 +1,13 @@
const RSVP = require('rsvp');
const ContributionSerializer = require('../serializers/contribution');
const Base = require('./base');
const ContributionSerializer = require('../serializers/contribution');
const paged = require('../utils/pagination');
class Proposal extends Base {
all() {
all(options = {}) {
return this.functions.proposalsCount()
.then(count => {
let proposals = [];
for (let id = 1; id <= count; id++) {
proposals.push(this.getById(id));
}
return RSVP.all(proposals);
.then((count) => {
let records = paged(count, options).map((id) => this.getById(id));
return Promise.all(records);
});
}