summaryrefslogtreecommitdiff
path: root/pkg/bindings/errors.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2020-01-15 12:28:46 -0600
committerbaude <bbaude@redhat.com>2020-01-15 14:22:25 -0600
commita6ea17455cb0c7bdc3d250e57e20d6dc9f5df45d (patch)
treef213779a9052f2aa375ca7bcf63156e9a0449466 /pkg/bindings/errors.go
parent34429f3b534960d2505789fcb0ac0278fc4aa4c0 (diff)
downloadpodman-a6ea17455cb0c7bdc3d250e57e20d6dc9f5df45d.tar.gz
podman-a6ea17455cb0c7bdc3d250e57e20d6dc9f5df45d.tar.bz2
podman-a6ea17455cb0c7bdc3d250e57e20d6dc9f5df45d.zip
[CI:DOCS]swagger cleanup and left-hand nav
add a static tags file so we can dictate the left-hand navigation. in doing so we now override the tag in the swagger:operation. we now have images and images (compat) as a way to differentiate. Signed-off-by: baude <bbaude@redhat.com>
Diffstat (limited to 'pkg/bindings/errors.go')
-rw-r--r--pkg/bindings/errors.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/pkg/bindings/errors.go b/pkg/bindings/errors.go
new file mode 100644
index 000000000..9a02925a3
--- /dev/null
+++ b/pkg/bindings/errors.go
@@ -0,0 +1,46 @@
+package bindings
+
+import (
+ "encoding/json"
+ "io/ioutil"
+ "net/http"
+
+ "github.com/containers/libpod/pkg/api/handlers/utils"
+ "github.com/pkg/errors"
+ "github.com/sirupsen/logrus"
+)
+
+var (
+ ErrNotImplemented = errors.New("function not implemented")
+)
+
+func handleError(data []byte) error {
+ e := utils.ErrorModel{}
+ if err := json.Unmarshal(data, &e); err != nil {
+ return err
+ }
+ return e
+}
+
+func (a APIResponse) Process(unmarshalInto interface{}) error {
+ data, err := ioutil.ReadAll(a.Response.Body)
+ if err != nil {
+ return errors.Wrap(err, "unable to process API response")
+ }
+ if a.Response.StatusCode == http.StatusOK {
+ if unmarshalInto != nil {
+ return json.Unmarshal(data, unmarshalInto)
+ }
+ return nil
+ }
+ // TODO should we add a debug here with the response code?
+ return handleError(data)
+}
+
+func closeResponseBody(r *http.Response) {
+ if r != nil {
+ if err := r.Body.Close(); err != nil {
+ logrus.Error(errors.Wrap(err, "unable to close response body"))
+ }
+ }
+}