From baeb5e0ccba55d937a985e4b5313ba573bfe4850 Mon Sep 17 00:00:00 2001 From: alfred-mk Date: Fri, 15 Nov 2024 18:37:20 +0300 Subject: [PATCH] use a single doRequest and updated the structs for TokenHoldings and Transfers --- remote/accountservice.go | 43 +++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/remote/accountservice.go b/remote/accountservice.go index 3af1ab1..6c94a28 100644 --- a/remote/accountservice.go +++ b/remote/accountservice.go @@ -51,7 +51,7 @@ func (as *AccountService) TrackAccountStatus(ctx context.Context, publicKey stri return nil, err } - _, err = doCustodialRequest(ctx, req, &r) + _, err = doRequest(ctx, req, &r) if err != nil { return nil, err } @@ -75,7 +75,7 @@ func (as *AccountService) CheckBalance(ctx context.Context, publicKey string) (* return nil, err } - _, err = doCustodialRequest(ctx, req, &balanceResult) + _, err = doRequest(ctx, req, &balanceResult) return &balanceResult, err } @@ -92,7 +92,7 @@ func (as *AccountService) CreateAccount(ctx context.Context) (*models.AccountRes if err != nil { return nil, err } - _, err = doCustodialRequest(ctx, req, &r) + _, err = doRequest(ctx, req, &r) if err != nil { return nil, err } @@ -104,7 +104,9 @@ func (as *AccountService) CreateAccount(ctx context.Context) (*models.AccountRes // Parameters: // - publicKey: The public key associated with the account. func (as *AccountService) FetchVouchers(ctx context.Context, publicKey string) ([]dataserviceapi.TokenHoldings, error) { - var r []dataserviceapi.TokenHoldings + var r struct { + Holdings []dataserviceapi.TokenHoldings `json:"holdings"` + } ep, err := url.JoinPath(config.VoucherHoldingsURL, publicKey) if err != nil { @@ -116,19 +118,21 @@ func (as *AccountService) FetchVouchers(ctx context.Context, publicKey string) ( return nil, err } - _, err = doDataRequest(ctx, req, r) + _, err = doRequest(ctx, req, &r) if err != nil { return nil, err } - return r, nil + return r.Holdings, nil } // FetchTransactions retrieves the last 10 transactions for a given public key from the data indexer API endpoint // Parameters: // - publicKey: The public key associated with the account. func (as *AccountService) FetchTransactions(ctx context.Context, publicKey string) ([]dataserviceapi.Last10TxResponse, error) { - var r []dataserviceapi.Last10TxResponse + var r struct { + Transfers []dataserviceapi.Last10TxResponse `json:"transfers"` + } ep, err := url.JoinPath(config.VoucherTransfersURL, publicKey) if err != nil { @@ -140,12 +144,12 @@ func (as *AccountService) FetchTransactions(ctx context.Context, publicKey strin return nil, err } - _, err = doDataRequest(ctx, req, r) + _, err = doRequest(ctx, req, &r) if err != nil { return nil, err } - return r, nil + return r.Transfers, nil } // VoucherData retrieves voucher metadata from the data indexer API endpoint. @@ -164,7 +168,7 @@ func (as *AccountService) VoucherData(ctx context.Context, address string) (*mod return nil, err } - _, err = doCustodialRequest(ctx, req, &voucherDataResult) + _, err = doRequest(ctx, req, &voucherDataResult) return &voucherDataResult, err } @@ -195,7 +199,7 @@ func (as *AccountService) TokenTransfer(ctx context.Context, amount, from, to, t if err != nil { return nil, err } - _, err = doCustodialRequest(ctx, req, &r) + _, err = doRequest(ctx, req, &r) if err != nil { return nil, err } @@ -206,7 +210,12 @@ func (as *AccountService) TokenTransfer(ctx context.Context, amount, from, to, t func doRequest(ctx context.Context, req *http.Request, rcpt any) (*api.OKResponse, error) { var okResponse api.OKResponse var errResponse api.ErrResponse + + req.Header.Set("Authorization", "Bearer "+config.BearerToken) req.Header.Set("Content-Type", "application/json") + + logRequestDetails(req) + resp, err := http.DefaultClient.Do(req) if err != nil { log.Printf("Failed to make %s request to endpoint: %s with reason: %s", req.Method, req.URL, err.Error()) @@ -244,18 +253,6 @@ func doRequest(ctx context.Context, req *http.Request, rcpt any) (*api.OKRespons return &okResponse, err } -func doCustodialRequest(ctx context.Context, req *http.Request, rcpt any) (*api.OKResponse, error) { - req.Header.Set("Authorization", "Bearer "+config.CustodialBearerToken) - logRequestDetails(req) - return doRequest(ctx, req, rcpt) -} - -func doDataRequest(ctx context.Context, req *http.Request, rcpt any) (*api.OKResponse, error) { - req.Header.Set("Authorization", "Bearer "+config.DataBearerToken) - logRequestDetails(req) - return doRequest(ctx, req, rcpt) -} - func logRequestDetails(req *http.Request) { var bodyBytes []byte contentType := req.Header.Get("Content-Type")