aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2025-07-12 17:49:23 +0700
committerShulhan <ms@kilabit.info>2025-07-12 17:49:23 +0700
commitdba7aa16a4df5e89c2aea5cec1d07609f468de82 (patch)
treeed328a4867e02693f4a4bb13cea140ec3cea7cf6
parentba54e6bc9aa20a1cbf2a3604345c830305449f7b (diff)
downloadduitku-dba7aa16a4df5e89c2aea5cec1d07609f468de82.tar.xz
all: add option Timeout to Client
The Timeout option affect how long the client wait for connect and waiting for response.
-rw-r--r--client.go1
-rw-r--r--client_options.go4
-rw-r--r--testdata/client_options_test.txt3
3 files changed, 7 insertions, 1 deletions
diff --git a/client.go b/client.go
index c518a15..f72415d 100644
--- a/client.go
+++ b/client.go
@@ -55,6 +55,7 @@ func NewClient(opts ClientOptions) (cl *Client, err error) {
logp = `NewClient`
httpcOpts = libhttp.ClientOptions{
ServerUrl: opts.ServerUrl,
+ Timeout: opts.Timeout,
}
)
diff --git a/client_options.go b/client_options.go
index fa6ad1c..2bdbffe 100644
--- a/client_options.go
+++ b/client_options.go
@@ -7,6 +7,7 @@ import (
"fmt"
"net/url"
"os"
+ "time"
"github.com/shuLhan/share/lib/ini"
)
@@ -33,6 +34,9 @@ type ClientOptions struct {
// DisburseUserID user ID for disbursement request.
DisburseUserID int64 `ini:"duitku::disburse_user_id"`
+
+ // Timeout for connection and response.
+ Timeout time.Duration
}
// LoadClientOptions load ClientOptions from file.
diff --git a/testdata/client_options_test.txt b/testdata/client_options_test.txt
index 5d4d34e..aa5106b 100644
--- a/testdata/client_options_test.txt
+++ b/testdata/client_options_test.txt
@@ -35,5 +35,6 @@ api_key = 1ndom4r3t
},
"DisburseApiKey": "abcd",
"DisburseEmail": "my@company.com",
- "DisburseUserID": 1111
+ "DisburseUserID": 1111,
+ "Timeout": 0
}