diff --git a/pkg/api/api.go b/pkg/api/api.go new file mode 100644 index 0000000..acf8e18 --- /dev/null +++ b/pkg/api/api.go @@ -0,0 +1,28 @@ +// Package api is a helper for calling external third party apis +package api + +import ( + "fmt" + "net/http" + "encoding/json" + "io/ioutil" +) + +func Get(url string, rsp interface{}) error { + resp, err := http.Get(url) + if err != nil { + return err + } + defer resp.Body.Close() + + b, err := ioutil.ReadAll(resp.Body) + if err != nil { + return err + } + + if resp.StatusCode != 200 { + return fmt.Errorf("Non 200 response %v: %v", resp.StatusCode, string(b)) + } + + return json.Unmarshal(b, rsp) +}