api.js 954 Bytes
const logger = global.logger

class Api {
  constructor(endpoint) {
    this.request = require('request').defaults({
      baseUrl: endpoint,
      timeout: 10000
    })
  }

  get(url, data) {
    return new Promise((resolve, reject) => {
      return this.request.get(url, {
        qs: data,
        json: true
      }, (err, res, body) => {
        if (err) {
          logger.error(url, err)
          return reject(err)
        }
        
        logger.log(url, JSON.stringify(data), JSON.stringify(body))
        resolve(body)
      })
    })
  }

  post(url, data) {
    return new Promise((resolve, reject) => {
      return this.request.get(url, {
        form: data,
        json: true
      }, (err, res, body) => {
        if (err) {
          logger.error(url, err)
          return reject(err)
        }

        logger.log(url, JSON.stringify(data), JSON.stringify(body))
        resolve(body)
      })
    })
  }
}

module.exports = Api