Skip to content

Commit

Permalink
Move RESTError to restapi.go (#1130)
Browse files Browse the repository at this point in the history
  • Loading branch information
switchupcb committed Mar 13, 2022
1 parent 9586f7f commit 12edb3b
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 47 deletions.
34 changes: 34 additions & 0 deletions restapi.go
Expand Up @@ -39,6 +39,40 @@ var (
ErrUnauthorized = errors.New("HTTP request was unauthorized. This could be because the provided token was not a bot token. Please add \"Bot \" to the start of your token. https://discord.com/developers/docs/reference#authentication-example-bot-token-authorization-header")
)

// RESTError stores error information about a request with a bad response code.
// Message is not always present, there are cases where api calls can fail
// without returning a json message.
type RESTError struct {
Request *http.Request
Response *http.Response
ResponseBody []byte

Message *APIErrorMessage // Message may be nil.
}

// newRestError returns a new REST API error.
func newRestError(req *http.Request, resp *http.Response, body []byte) *RESTError {
restErr := &RESTError{
Request: req,
Response: resp,
ResponseBody: body,
}

// Attempt to decode the error and assume no message was provided if it fails
var msg *APIErrorMessage
err := json.Unmarshal(body, &msg)
if err == nil {
restErr.Message = msg
}

return restErr
}

// Error returns a Rest API Error with its status code and body.
func (r RESTError) Error() string {
return "HTTP " + r.Response.Status + ", " + string(r.ResponseBody)
}

// Request is the same as RequestWithBucketID but the bucket id is the same as the urlStr
func (s *Session) Request(method, urlStr string, data interface{}) (response []byte, err error) {
return s.RequestWithBucketID(method, urlStr, data, strings.SplitN(urlStr, "?", 2)[0])
Expand Down
47 changes: 0 additions & 47 deletions types.go

This file was deleted.

0 comments on commit 12edb3b

Please sign in to comment.