aboutsummaryrefslogtreecommitdiff
path: root/anime/request_handler.go
diff options
context:
space:
mode:
Diffstat (limited to 'anime/request_handler.go')
-rw-r--r--anime/request_handler.go20
1 files changed, 15 insertions, 5 deletions
diff --git a/anime/request_handler.go b/anime/request_handler.go
index 00703bc..816417e 100644
--- a/anime/request_handler.go
+++ b/anime/request_handler.go
@@ -17,14 +17,17 @@
package anime
import (
- "io/ioutil"
- "log"
- "net/http"
+ "io/ioutil"
+ "log"
+ "net/http"
+ "encoding/json"
+ "github.com/MikunoNaka/MAL2Go/util"
+ "errors"
)
// Handles HTTP request with your OAuth token as a Header
// TODO: Verify that this function is safe to use
-func (c Client) requestHandler(endpoint string) string {
+func (c Client) requestHandler(endpoint string) (string, error) {
// generate request
req, err := http.NewRequest("GET", endpoint, nil)
if err != nil {
@@ -45,5 +48,12 @@ func (c Client) requestHandler(endpoint string) string {
log.Fatal(err)
}
- return string(body)
+ // error handling (if API returns error)
+ var errMsg util.APIError
+ json.Unmarshal(body, &errMsg)
+ if errMsg.Err != "" {
+ return string(body), errors.New(errMsg.Err + " " + errMsg.Msg)
+ }
+
+ return string(body), nil
}