44 "errors"
55 "net"
66 "net/http"
7+ "time"
78
89 resty "github.com/go-resty/resty/v2"
910 "github.com/shellhub-io/shellhub/pkg/worker"
@@ -39,10 +40,14 @@ var (
3940 ErrUnknown = errors .New ("unknown error" )
4041)
4142
42- func NewClient (opts ... clientOption ) (Client , error ) {
43- cfg , err := DefaultConfig ()
44- if err != nil {
45- return nil , err
43+ func NewClient (cfg * Config , opts ... clientOption ) (Client , error ) {
44+ if cfg == nil {
45+ var err error
46+
47+ cfg , err = NewConfigFromEnv ()
48+ if err != nil {
49+ return nil , err
50+ }
4651 }
4752
4853 httpClient := resty .New ()
@@ -65,8 +70,8 @@ func NewClient(opts ...clientOption) (Client, error) {
6570 // NOTE: Avoid setting a global base URL on the Resty client. Calls to enterprise endpoints
6671 // will use c.config.EnterpriseBaseURL explicitly when needed.
6772 httpClient .SetRetryCount (c .config .RetryCount )
68- httpClient .SetRetryWaitTime (c .config .RetryWaitTime )
69- httpClient .SetRetryMaxWaitTime (c .config .RetryMaxWaitTime )
73+ httpClient .SetRetryWaitTime (time . Duration ( c .config .RetryWaitTime ) * time . Second )
74+ httpClient .SetRetryMaxWaitTime (time . Duration ( c .config .RetryMaxWaitTime ) * time . Second )
7075 httpClient .AddRetryCondition (func (r * resty.Response , err error ) bool {
7176 if _ , ok := err .(net.Error ); ok { // if the error is a network error, retry.
7277 return true
@@ -104,7 +109,6 @@ func NewClient(opts ...clientOption) (Client, error) {
104109 return c , nil
105110}
106111
107- // mustWorker panics if [client.worker] is nil.
108112func (c * client ) mustWorker () {
109113 if c .worker == nil {
110114 panic ("Client does not have any worker" )
0 commit comments