|
2 | 2 |
|
3 | 3 | var debug = require('debug')('httpsnippet'); |
4 | 4 | var mapper = require('./mapper'); |
| 5 | +var qs = require('querystring'); |
5 | 6 | var targets = require('./targets'); |
6 | 7 | var url = require('url'); |
7 | 8 | var util = require('util'); |
@@ -35,24 +36,24 @@ var HTTPSnippet = function (req, lang) { |
35 | 36 | // deconstruct the uri |
36 | 37 | this.source.uriObj = url.parse(this.source.url, true, true); |
37 | 38 |
|
38 | | - // search property is evil |
39 | | - // prevents re-construction with new query values |
40 | | - this.source.uriObj.search = null; |
41 | | - |
42 | 39 | // merge all possible queryString values |
43 | 40 | this.source.queryString = util._extend(this.source.uriObj.query, this.source.queryObj); |
44 | 41 |
|
45 | | - // update the query object |
46 | | - this.source.uriObj.query = this.source.queryString; |
47 | | - |
48 | | - // construct a full url |
49 | | - this.source.fullUrl = url.format(this.source.uriObj); |
50 | | - |
51 | | - // reset queryString in url |
| 42 | + // reset uriObj values for a clean url |
52 | 43 | this.source.uriObj.query = null; |
| 44 | + this.source.uriObj.search = null; |
| 45 | + this.source.uriObj.path = this.source.uriObj.pathname; |
53 | 46 |
|
54 | 47 | // keep the base url clean of queryString |
55 | 48 | this.source.url = url.format(this.source.uriObj); |
| 49 | + |
| 50 | + // update the uri object |
| 51 | + this.source.uriObj.query = this.source.queryString; |
| 52 | + this.source.uriObj.search = qs.stringify(this.source.queryString); |
| 53 | + this.source.uriObj.path = this.source.uriObj.pathname + '?' + this.source.uriObj.search; |
| 54 | + |
| 55 | + // construct a full url |
| 56 | + this.source.fullUrl = url.format(this.source.uriObj); |
56 | 57 | }; |
57 | 58 |
|
58 | 59 | HTTPSnippet.prototype.getSource = function () { |
|
0 commit comments