api.js 1.09 KB
/**
 * 接口公共方法
 * @author: xuqiMqi.xu@yoho.cn>
 * @date: 2016/4/25
 */

'use strict';

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

class API {

    /**
     * get
     * @param url String
     * @param data Obejct
     */
     get(url, data) {
        return rp({
            url: `${this.server}${url}`,
            qs: data
        });
    }

    /**
     * multi get
     * @params: urls => Array[Object[url[string], data[object]]]
     */
    multiGet(urls) {
        var rps = [],
            self = this;

        _.forEach(urls, function(el) {
            rps.push(rp({
                url: `${self.server}${el.url}`,
                qs: el.data
            }));
        });

        return Promise.all(rps).then((d) => {
            return d;
        });
    }

    /**
     * post
     * @param url String
     * @param data Obejct
     */
    post(url, data) {
        return rp({
            url: `${this.server}${url}`,
            method: 'post',
            form: data
        });
    }
}

module.exports = API;