Compare commits

...

2 Commits
v1.5.1 ... main

Author SHA1 Message Date
bfc0e5c417 removed lint warning 2023-10-09 13:49:37 +02:00
e6183ddfa3 handle error messages 2023-10-09 13:48:09 +02:00
4 changed files with 38 additions and 1 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
api_test.go

4
api.go
View File

@ -49,6 +49,10 @@ func request[T any](api *Api, query string, vars map[string]interface{}, respObj
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
return handleError(resp)
}
//data, _ := ioutil.ReadAll(resp.Body)
//fmt.Println(string(data))

32
api_error.go Normal file
View File

@ -0,0 +1,32 @@
package anilist
import (
"encoding/json"
"errors"
"net/http"
)
type apiError struct {
Message string `json:"message"`
Status int `json:"status"`
}
type apiErrResp struct {
Errors []apiError `json:"errors"`
}
func handleError(resp *http.Response) error {
respObj := &apiErrResp{}
dec := json.NewDecoder(resp.Body)
err := dec.Decode(respObj)
if err != nil {
return err
}
if len(respObj.Errors) == 0 {
return errors.New("unknown API error")
}
return errors.New(respObj.Errors[0].Message)
}

View File

@ -18,7 +18,7 @@ func addValue2InterfaceMap[K, T comparable](m map[K]interface{}, key K, value T)
}
func addSlice2InterfaceMap[K, T comparable](m map[K]interface{}, key K, value []T) {
if value != nil && len(value) > 0 {
if len(value) > 0 {
m[key] = value
}
}