type Adapter struct { retryable *retryablehttp.Client}
func (a Adapter) RoundTrip(r *http.Request) (*http.Response, error) { var body io.ReadSeeker if r.Body != nil { defer r.Body.Close() b, err := ioutil.ReadAll(r.Body) if err != nil { return nil, err } body = bytes.NewReader(b) }
req, err := retryablehttp.NewRequest(r.Method, r.URL.String(), body) if err != nil { return nil, err } req.Header = r.Header
return a.retryable.Do(req)}