File size: 644 Bytes
9853396 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package httpclient
import (
"errors"
"fmt"
"net/http"
)
func IsNotFoundErr(err error) bool {
var e *Error
return errors.As(err, &e) && e.StatusCode == http.StatusNotFound
}
func IsRateLimitErr(err error) bool {
var e *Error
return errors.As(err, &e) && e.StatusCode == http.StatusTooManyRequests
}
type Error struct {
Method string `json:"method"`
URL string `json:"url"`
StatusCode int `json:"status_code"`
Status string `json:"status"`
Body []byte `json:"body"`
}
func (e *Error) Error() string {
return fmt.Sprintf("%s - %s with status %s", e.Method, e.URL, e.Status)
}
|