troopclient
Version:
Client component for troop style backend svc
76 lines (63 loc) • 1.4 kB
JavaScript
var request = require("request");
var when = require("when");
module.exports.get = function (url, cookieHeader) {
var deferred = when.defer();
request({
"url": url,
"method": "GET",
"jar": createCookieJar(cookieHeader)
}, function(error, response, body) {
if(response && response.statusCode == 200) {
deferred.resolve(body);
}
else {
deferred.reject();
}
});
return deferred.promise;
}
module.exports.post = function (url, formData, cookieHeader) {
var deferred = when.defer();
request({
"url": url,
"method": "POST",
"form": formData,
"jar": createCookieJar(cookieHeader)
}, function(error, response, body) {
if(response && response.statusCode == 200) {
deferred.resolve(body);
}
else {
deferred.reject();
}
});
return deferred.promise;
}
module.exports.postJson = function (url, json, cookieHeader) {
var deferred = when.defer();
request({
"url": url,
"method": "POST",
"json": json,
"jar": createCookieJar(cookieHeader)
}, function(error, response, body) {
if(response && response.statusCode == 200) {
deferred.resolve(body);
}
else {
deferred.reject();
}
});
return deferred.promise;
}
function createCookieJar (cookieHeader) {
var jar = request.jar();
var cookie;
if(cookieHeader) {
cookieHeader.forEach(function(item) {
cookie = request.cookie(item);
jar.add(cookie);
})
}
return jar;
}