Refactor PageResult creation.
diff --git a/pagination/http.go b/pagination/http.go
index cabcccd..1b3fe94 100644
--- a/pagination/http.go
+++ b/pagination/http.go
@@ -36,13 +36,19 @@
parsedBody = rawBody
}
+ return PageResultFromParsed(resp, parsedBody), err
+}
+
+// PageResultFromParsed constructs a PageResult from an HTTP response that has already had its
+// body parsed as JSON (and closed).
+func PageResultFromParsed(resp *http.Response, body interface{}) PageResult {
return PageResult{
Result: gophercloud.Result{
- Body: parsedBody,
+ Body: body,
Header: resp.Header,
},
URL: *resp.Request.URL,
- }, err
+ }
}
// Request performs an HTTP request and extracts the http.Response from the result.
diff --git a/rackspace/lb/v1/nodes/requests.go b/rackspace/lb/v1/nodes/requests.go
index b33d339..dc2d46c 100644
--- a/rackspace/lb/v1/nodes/requests.go
+++ b/rackspace/lb/v1/nodes/requests.go
@@ -119,14 +119,7 @@
return res
}
- pr := pagination.PageResult{
- Result: gophercloud.Result{
- Body: res.Body,
- Header: resp.Header,
- },
- URL: *resp.Request.URL,
- }
-
+ pr := pagination.PageResultFromParsed(resp, res.Body)
return CreateResult{pagination.SinglePageBase(pr)}
}