Added query escaping to ids
Lennart Olsen
7 years ago
7 | 7 | "errors" |
8 | 8 | "io/ioutil" |
9 | 9 | "net/http" |
10 | ||
11 | "net/url" | |
10 | 12 | |
11 | 13 | "github.com/gorilla/mux" |
12 | 14 | "golang.org/x/net/context" |
231 | 233 | func encodeGetProfileRequest(ctx context.Context, req *http.Request, request interface{}) error { |
232 | 234 | // r.Methods("GET").Path("/profiles/{id}") |
233 | 235 | r := request.(getProfileRequest) |
234 | req.Method, req.URL.Path = "GET", "/profiles/"+r.ID | |
236 | profileID := url.QueryEscape(r.ID) | |
237 | req.Method, req.URL.Path = "GET", "/profiles/"+profileID | |
235 | 238 | return encodeRequest(ctx, req, request) |
236 | 239 | } |
237 | 240 | |
238 | 241 | func encodePutProfileRequest(ctx context.Context, req *http.Request, request interface{}) error { |
239 | 242 | // r.Methods("PUT").Path("/profiles/{id}") |
240 | 243 | r := request.(putProfileRequest) |
241 | req.Method, req.URL.Path = "PUT", "/profiles/"+r.ID | |
244 | profileID := url.QueryEscape(r.ID) | |
245 | req.Method, req.URL.Path = "PUT", "/profiles/"+profileID | |
242 | 246 | return encodeRequest(ctx, req, request) |
243 | 247 | } |
244 | 248 | |
245 | 249 | func encodePatchProfileRequest(ctx context.Context, req *http.Request, request interface{}) error { |
246 | 250 | // r.Methods("PATCH").Path("/profiles/{id}") |
247 | 251 | r := request.(patchProfileRequest) |
248 | req.Method, req.URL.Path = "PATCH", "/profiles/"+r.ID | |
252 | profileID := url.QueryEscape(r.ID) | |
253 | req.Method, req.URL.Path = "PATCH", "/profiles/"+profileID | |
249 | 254 | return encodeRequest(ctx, req, request) |
250 | 255 | } |
251 | 256 | |
252 | 257 | func encodeDeleteProfileRequest(ctx context.Context, req *http.Request, request interface{}) error { |
253 | 258 | // r.Methods("DELETE").Path("/profiles/{id}") |
254 | 259 | r := request.(deleteProfileRequest) |
255 | req.Method, req.URL.Path = "DELETE", "/profiles/"+r.ID | |
260 | profileID := url.QueryEscape(r.ID) | |
261 | req.Method, req.URL.Path = "DELETE", "/profiles/"+profileID | |
256 | 262 | return encodeRequest(ctx, req, request) |
257 | 263 | } |
258 | 264 | |
259 | 265 | func encodeGetAddressesRequest(ctx context.Context, req *http.Request, request interface{}) error { |
260 | 266 | // r.Methods("GET").Path("/profiles/{id}/addresses/") |
261 | 267 | r := request.(getAddressesRequest) |
262 | req.Method, req.URL.Path = "GET", "/profiles/"+r.ProfileID+"/addresses/" | |
268 | profileID := url.QueryEscape(r.ProfileID) | |
269 | req.Method, req.URL.Path = "GET", "/profiles/"+profileID+"/addresses/" | |
263 | 270 | return encodeRequest(ctx, req, request) |
264 | 271 | } |
265 | 272 | |
266 | 273 | func encodeGetAddressRequest(ctx context.Context, req *http.Request, request interface{}) error { |
267 | 274 | // r.Methods("GET").Path("/profiles/{id}/addresses/{addressID}") |
268 | 275 | r := request.(getAddressRequest) |
269 | req.Method, req.URL.Path = "GET", "/profiles/"+r.ProfileID+"/addresses/"+r.AddressID | |
276 | profileID := url.QueryEscape(r.ProfileID) | |
277 | addressID := url.QueryEscape(r.AddressID) | |
278 | req.Method, req.URL.Path = "GET", "/profiles/"+profileID+"/addresses/"+ addressID | |
270 | 279 | return encodeRequest(ctx, req, request) |
271 | 280 | } |
272 | 281 | |
273 | 282 | func encodePostAddressRequest(ctx context.Context, req *http.Request, request interface{}) error { |
274 | 283 | // r.Methods("POST").Path("/profiles/{id}/addresses/") |
275 | 284 | r := request.(postAddressRequest) |
276 | req.Method, req.URL.Path = "POST", "/profiles/"+r.ProfileID+"/addresses/" | |
285 | profileID := url.QueryEscape(r.ProfileID) | |
286 | req.Method, req.URL.Path = "POST", "/profiles/"+profileID+"/addresses/" | |
277 | 287 | return encodeRequest(ctx, req, request) |
278 | 288 | } |
279 | 289 | |
280 | 290 | func encodeDeleteAddressRequest(ctx context.Context, req *http.Request, request interface{}) error { |
281 | 291 | // r.Methods("DELETE").Path("/profiles/{id}/addresses/{addressID}") |
282 | 292 | r := request.(deleteAddressRequest) |
283 | req.Method, req.URL.Path = "DELETE", "/profiles/"+r.ProfileID+"/addresses/"+r.AddressID | |
293 | profileID := url.QueryEscape(r.ProfileID) | |
294 | addressID := url.QueryEscape(r.AddressID) | |
295 | req.Method, req.URL.Path = "DELETE", "/profiles/"+profileID+"/addresses/"+addressID | |
284 | 296 | return encodeRequest(ctx, req, request) |
285 | 297 | } |
286 | 298 |