aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2022-11-10 11:03:54 +0700
committerShulhan <ms@kilabit.info>2022-11-10 11:24:45 +0700
commit1001ab2cf4f02cf81d6b4ce72c09829e6b3b66be (patch)
tree98888815bacfa7b19c42bbf52c30aafc86c610ca
parente430f18e51ac9e0b19bbe9d2e1acbbdd75d5d93a (diff)
downloadduitku-1001ab2cf4f02cf81d6b4ce72c09829e6b3b66be.tar.xz
all: change the inquiry and transfer parameter to pointer
Since the call to inquiry/transfer modify the parameter fields, we need to pass it as pointer so the caller can inspect or log the request values.
-rw-r--r--clearing_transfer.go6
-rw-r--r--client.go12
-rw-r--r--client_test.go10
3 files changed, 15 insertions, 13 deletions
diff --git a/clearing_transfer.go b/clearing_transfer.go
index 9459f44..9124eac 100644
--- a/clearing_transfer.go
+++ b/clearing_transfer.go
@@ -26,12 +26,14 @@ type clearingTransfer struct {
rtolTransfer
}
-// createClearingTransfer create clearingTransfer from Clearing Inquiry
+// newClearingTransfer create clearingTransfer from Clearing Inquiry
// request and response.
//
// The following fields are set from response: AccountName, CustRefNumber,
// DisburseID, and Type.
-func createClearingTransfer(inqReq ClearingInquiry, inqRes ClearingInquiryResponse) (trf clearingTransfer) {
+func newClearingTransfer(inqReq *ClearingInquiry, inqRes *ClearingInquiryResponse) (trf *clearingTransfer) {
+ trf = &clearingTransfer{}
+
trf.Amount = inqReq.Amount
trf.BankAccount = inqReq.BankAccount
trf.BankCode = inqReq.BankCode
diff --git a/client.go b/client.go
index c19f20e..b11bbf0 100644
--- a/client.go
+++ b/client.go
@@ -92,7 +92,7 @@ func (cl *Client) CheckBalance() (bal *Balance, err error) {
// ClearingInquiry initiate the transfer for Clearing using LLG, RTGS, H2H, or
// BI-FAST.
-func (cl *Client) ClearingInquiry(req ClearingInquiry) (res *ClearingInquiryResponse, err error) {
+func (cl *Client) ClearingInquiry(req *ClearingInquiry) (res *ClearingInquiryResponse, err error) {
var (
logp = `ClearingInquiry`
path = PathDisbursementInquiryClearing
@@ -133,13 +133,13 @@ func (cl *Client) ClearingInquiry(req ClearingInquiry) (res *ClearingInquiryResp
//
// The following fields are set from response: AccountName, CustRefNumber,
// DisburseID, and Type.
-func (cl *Client) ClearingTransfer(inquiryReq ClearingInquiry, inquiryRes ClearingInquiryResponse) (
+func (cl *Client) ClearingTransfer(inquiryReq *ClearingInquiry, inquiryRes *ClearingInquiryResponse) (
transferRes *ClearingTransferResponse, err error,
) {
var (
logp = `ClearingTransfer`
path = PathDisbursementTransferClearing
- transferReq = createClearingTransfer(inquiryReq, inquiryRes)
+ transferReq = newClearingTransfer(inquiryReq, inquiryRes)
httpRes *http.Response
resBody []byte
@@ -229,7 +229,7 @@ func (cl *Client) ListBank() (banks []Bank, err error) {
// If appropriate, the customer can proceed to the transfer process.
//
// Ref: https://docs.duitku.com/disbursement/en/#transfer-online
-func (cl *Client) RtolInquiry(req RtolInquiry) (res *RtolInquiryResponse, err error) {
+func (cl *Client) RtolInquiry(req *RtolInquiry) (res *RtolInquiryResponse, err error) {
var (
logp = `RtolInquiry`
path = PathDisbursementInquiry
@@ -272,7 +272,7 @@ func (cl *Client) RtolInquiry(req RtolInquiry) (res *RtolInquiryResponse, err er
// the beneficiary bank account.
//
// Ref: https://docs.duitku.com/disbursement/en/#online-transfer-transfer-request
-func (cl *Client) RtolTransfer(inquiryReq RtolInquiry, inquiryRes RtolInquiryResponse) (res *RtolTransferResponse, err error) {
+func (cl *Client) RtolTransfer(inquiryReq *RtolInquiry, inquiryRes *RtolInquiryResponse) (res *RtolTransferResponse, err error) {
var (
logp = `RtolTransfer`
path = PathDisbursementTransfer
@@ -288,7 +288,7 @@ func (cl *Client) RtolTransfer(inquiryReq RtolInquiry, inquiryRes RtolInquiryRes
path = PathDisbursementTransferSandbox
}
- req = newRtolTransfer(&inquiryReq, &inquiryRes)
+ req = newRtolTransfer(inquiryReq, inquiryRes)
req.sign(cl.opts)
resHttp, resBody, err = cl.PostJSON(path, nil, req)
diff --git a/client_test.go b/client_test.go
index c896c60..4943486 100644
--- a/client_test.go
+++ b/client_test.go
@@ -64,7 +64,7 @@ func TestClient_ClearingInquiry_sandbox(t *testing.T) {
t.Fatal(err)
}
- inquiryRes, err = testClient.ClearingInquiry(inquiryReq)
+ inquiryRes, err = testClient.ClearingInquiry(&inquiryReq)
if err != nil {
t.Fatal(err)
}
@@ -103,7 +103,7 @@ func TestClient_ClearingTransfer_sandbox(t *testing.T) {
t.Fatal(err)
}
- transferRes, err = testClient.ClearingTransfer(inquiryReq, inquiryRes)
+ transferRes, err = testClient.ClearingTransfer(&inquiryReq, &inquiryRes)
if err != nil {
t.Fatal(err)
}
@@ -136,7 +136,7 @@ func TestClient_RtolInquiry_sandbox(t *testing.T) {
t.Fatal(err)
}
- inquiryRes, err = testClient.RtolInquiry(inquiryReq)
+ inquiryRes, err = testClient.RtolInquiry(&inquiryReq)
if err != nil {
t.Fatal(err)
}
@@ -170,12 +170,12 @@ func TestClient_RtolTransfer_sandbox(t *testing.T) {
t.Fatal(err)
}
- inquiryRes, err = testClient.RtolInquiry(*inquiryReq)
+ inquiryRes, err = testClient.RtolInquiry(inquiryReq)
if err != nil {
t.Fatal(err)
}
- transferRes, err = testClient.RtolTransfer(*inquiryReq, *inquiryRes)
+ transferRes, err = testClient.RtolTransfer(inquiryReq, inquiryRes)
if err != nil {
t.Fatal(err)
}