From 441e8b6dead14728f8545b4796b4f0f49aee7828 Mon Sep 17 00:00:00 2001 From: Artem Date: Sat, 28 Oct 2023 22:15:57 +0200 Subject: [PATCH] Check rpc url before sending request --- internal/helpers/string.go | 7 +++---- internal/noderpc/rpc.go | 11 ++++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/internal/helpers/string.go b/internal/helpers/string.go index 9ee133e70..13f39e93c 100644 --- a/internal/helpers/string.go +++ b/internal/helpers/string.go @@ -1,7 +1,6 @@ package helpers import ( - "fmt" "net/url" "os" "path" @@ -29,13 +28,13 @@ func GenerateID() string { } // URLJoin - -func URLJoin(baseURL, queryPath string) string { +func URLJoin(baseURL, queryPath string) (string, error) { u, err := url.Parse(baseURL) if err != nil { - return fmt.Sprintf("%s/%s", baseURL, queryPath) + return "", err } u.Path = path.Join(u.Path, queryPath) - return u.String() + return u.String(), nil } // SpaceStringsBuilder - diff --git a/internal/noderpc/rpc.go b/internal/noderpc/rpc.go index 8fa8acbc8..286ab5525 100644 --- a/internal/noderpc/rpc.go +++ b/internal/noderpc/rpc.go @@ -120,7 +120,10 @@ func (rpc *NodeRPC) makeRequest(ctx context.Context, req *http.Request) (*http.R } func (rpc *NodeRPC) makeGetRequest(ctx context.Context, uri string) (*http.Response, error) { - url := helpers.URLJoin(rpc.baseURL, uri) + url, err := helpers.URLJoin(rpc.baseURL, uri) + if err != nil { + return nil, errors.Wrap(ErrNodeRPCError, err.Error()) + } req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) if err != nil { return nil, errors.Errorf("makeGetRequest.NewRequest: %v", err) @@ -129,8 +132,10 @@ func (rpc *NodeRPC) makeGetRequest(ctx context.Context, uri string) (*http.Respo } func (rpc *NodeRPC) makePostRequest(ctx context.Context, uri string, data interface{}) (*http.Response, error) { - url := helpers.URLJoin(rpc.baseURL, uri) - + url, err := helpers.URLJoin(rpc.baseURL, uri) + if err != nil { + return nil, errors.Wrap(ErrNodeRPCError, err.Error()) + } bData, err := json.Marshal(data) if err != nil { return nil, errors.Errorf("makePostRequest.json.Marshal: %v", err)