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) }