Commit ce2bc9d6 authored by Pedro Henrique de Assis's avatar Pedro Henrique de Assis
Browse files

Refactoring rp functions

parent 7ea28ca5
Loading
Loading
Loading
Loading
+11 −22
Original line number Original line Diff line number Diff line
@@ -22,6 +22,10 @@ function rp(options) {
        }
        }
    }
    }
    c.method = c.method || 'GET';
    c.method = c.method || 'GET';
    return buildPromise(c);
}

function buildPromise (c) {
    return new Promise(function (resolve, reject) {
    return new Promise(function (resolve, reject) {
            request(c, function (error, response, body) {
            request(c, function (error, response, body) {
            if (error) {
            if (error) {
@@ -75,29 +79,14 @@ Object.keys(request).filter(function(key){
Object.keys(request).filter(function(key){
Object.keys(request).filter(function(key){
    return typeof(request[key]) === "function" && wrapMethods.indexOf(key) +1;
    return typeof(request[key]) === "function" && wrapMethods.indexOf(key) +1;
}).forEach(function(key){
}).forEach(function(key){
    rp[key] = function(){
    rp[key] = defaultHttpMethod;
});

function defaultHttpMethod(){
    var args = Array.prototype.slice.call(arguments, 0);
    var args = Array.prototype.slice.call(arguments, 0);
        return new Promise(function (resolve, reject) {
            var method = methodNameLookup[key];
    var params = request.initParams.apply(request, args);
    var params = request.initParams.apply(request, args);
            params.options.method = method;
    params.method = methodNameLookup[key];
            request(params, function (error, response, body) {
    return buildPromise(params);
                if (error) {
                    reject(error);
                } else if (statusCodes[method].indexOf(response.statusCode) === -1) {
                    reject(response);
                } else {
                    if (params.transform && typeof params.transform === 'function') {
                        resolve(params.transform(body));
                    } else {
                        resolve(body);
                    }
                }
            });
        });
}
}
});




module.exports = rp;
module.exports = rp;