github.com/0chain/gosdk@v1.17.11/core/resty/option.go (about)

     1  package resty
     2  
     3  import (
     4  	"net/http"
     5  )
     6  
     7  // WithRetry set retry times if request is failure with 5xx status code. retry is ingore if it is less than 1.
     8  func WithRetry(retry int) Option {
     9  	return func(r *Resty) {
    10  		if retry > 0 {
    11  			r.retry = retry
    12  		}
    13  	}
    14  }
    15  
    16  // WithHeader set header for http request
    17  func WithHeader(header map[string]string) Option {
    18  	return func(r *Resty) {
    19  		if r.header == nil {
    20  			r.header = make(map[string]string)
    21  		}
    22  
    23  		for k, v := range header {
    24  			r.header[k] = v
    25  		}
    26  	}
    27  }
    28  
    29  // WithRequestInterceptor intercept request
    30  func WithRequestInterceptor(interceptor func(req *http.Request) error) Option {
    31  	return func(r *Resty) {
    32  		r.requestInterceptor = interceptor
    33  	}
    34  }
    35  
    36  // WithTransport set transport
    37  func WithTransport(transport *http.Transport) Option {
    38  	return func(r *Resty) {
    39  		r.transport = transport
    40  	}
    41  }
    42  
    43  // WithClient set client
    44  func WithClient(c Client) Option {
    45  	return func(r *Resty) {
    46  		r.client = c
    47  	}
    48  }