const request = require('request-promise')
const _ = require('lodash')

module.exports = {
  Query: {
    async contribute() { return {} }
  },
  ContributeQuery: {
    async contributors(obj, args, context, info) {
      const resp = await request({
        uri: 'https://opencollective.com/wikijs/members/all.json',
        json: true
      })
      return _.filter(resp, c => {
        return c.role === 'BACKER' && c.totalAmountDonated > 0
      }).map(c => ({
        company: _.get(c, 'company', '') || '',
        currency: _.get(c, 'currency', 'USD') || 'USD',
        description: _.get(c, 'description', '') || '',
        id: _.get(c, 'MemberId', 0),
        image: _.get(c, 'image', '') || '',
        name: _.get(c, 'name', 'Anonymous') || '',
        profile: _.get(c, 'profile', ''),
        tier: _.toLower(_.get(c, 'tier', 'backers')),
        totalDonated: Math.ceil(_.get(c, 'totalAmountDonated', 0)),
        twitter: _.get(c, 'twitter', '') || '',
        website: _.get(c, 'website', '') || ''
      }))
    }
  }
}