Skip to content

Commit

Permalink
#911 support params option in Parse.Cloud.httpRequest
Browse files Browse the repository at this point in the history
  • Loading branch information
carmenlau committed Mar 8, 2016
1 parent 241cd8c commit 164a551
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 2 deletions.
37 changes: 36 additions & 1 deletion spec/HTTPRequest.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,11 @@ app.get("/301", function(req, res){

app.post('/echo', function(req, res){
res.json(req.body);
})
});

app.get('/qs', function(req, res){
res.json(req.query);
});

app.listen(13371);

Expand Down Expand Up @@ -193,4 +197,35 @@ describe("httpRequest", () => {
}
});
})

it("should params object to query string", (done) => {
httpRequest({
url: httpRequestServer+"/qs",
params: {
foo: "bar"
}
}).then(function(httpResponse){
expect(httpResponse.status).toBe(200);
expect(httpResponse.data).toEqual({foo: "bar"});
done();
}, function(){
fail("should not fail");
done();
})
});

it("should params string to query string", (done) => {
httpRequest({
url: httpRequestServer+"/qs",
params: "foo=bar&foo2=bar2"
}).then(function(httpResponse){
expect(httpResponse.status).toBe(200);
expect(httpResponse.data).toEqual({foo: "bar", foo2: 'bar2'});
done();
}, function(){
fail("should not fail");
done();
})
});

});
9 changes: 8 additions & 1 deletion src/cloud-code/httpRequest.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
var request = require("request"),
querystring = require('querystring'),
Parse = require('parse/node').Parse;

var encodeBody = function(body, headers = {}) {
Expand Down Expand Up @@ -34,7 +35,13 @@ module.exports = function(options) {
options.body = encodeBody(options.body, options.headers);
// set follow redirects to false by default
options.followRedirect = options.followRedirects == true;

// support params options
if (typeof options.params === 'object') {
options.qs = options.params;
} else if (typeof options.params === 'string') {
options.qs = querystring.parse(options.params);
}

request(options, (error, response, body) => {
if (error) {
if (callbacks.error) {
Expand Down

0 comments on commit 164a551

Please sign in to comment.