Files
shields/services/opencollective/opencollective-by-tier.service.js
2021-07-09 12:53:55 +01:00

33 lines
1.2 KiB
JavaScript

import OpencollectiveBase from './opencollective-base.js'
const documentation = `<h3>How to get the tierId</h3>
<p>According to <a target="_blank" href="https://developer.opencollective.com/#/api/collectives?id=get-members-per-tier">open collectives documentation</a>, you can find the tierId by looking at the URL after clicking on a Tier Card on the collective page. (e.g. tierId for https://opencollective.com/shields/order/2988 is 2988)</p>`
export default class OpencollectiveByTier extends OpencollectiveBase {
static route = this.buildRoute('tier', true)
static examples = [
{
title: 'Open Collective members by tier',
namedParams: { collective: 'shields', tierId: '2988' },
staticPreview: this.render(8, 'monthly backers'),
keywords: ['opencollective'],
documentation,
},
]
static defaultBadgeData = {
label: 'open collective',
}
async handle({ collective, tierId }) {
const result = await this.fetchCollectiveBackersCount(collective, {
tierId,
})
if (result.tier) {
if (!result.tier.endsWith('s')) result.tier += 's'
} else result.tier = 'new tier'
return this.constructor.render(result.backersCount, result.tier)
}
}