diff options
| author | Shulhan <ms@kilabit.info> | 2022-11-10 11:03:54 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2022-11-10 11:24:45 +0700 |
| commit | 1001ab2cf4f02cf81d6b4ce72c09829e6b3b66be (patch) | |
| tree | 98888815bacfa7b19c42bbf52c30aafc86c610ca | |
| parent | e430f18e51ac9e0b19bbe9d2e1acbbdd75d5d93a (diff) | |
| download | duitku-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.go | 6 | ||||
| -rw-r--r-- | client.go | 12 | ||||
| -rw-r--r-- | client_test.go | 10 |
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 @@ -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) } |
