From e7b1ca79acbe1b2a1bec7029b19993e8f5ace4a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20P=C3=A9rez?= Date: Thu, 17 Oct 2024 20:51:31 +0200 Subject: [PATCH] initial commit --- .gitignore | 1 + go.mod | 3 +++ testutils/testutils.go | 55 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 .gitignore create mode 100644 go.mod create mode 100644 testutils/testutils.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9f11b75 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..6a9ea5a --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/zepyrshut/goldhammer + +go 1.23.2 diff --git a/testutils/testutils.go b/testutils/testutils.go new file mode 100644 index 0000000..8d5768d --- /dev/null +++ b/testutils/testutils.go @@ -0,0 +1,55 @@ +package testutils + +import ( + "bytes" + "encoding/json" + "net/http" +) + +func NewHTTPRequestJSON(method, url string, body interface{}, queryParams map[string]string) (*http.Request, error) { + bodyBytes, err := json.Marshal(body) + if err != nil { + return nil, err + } + + request, err := http.NewRequest(method, url, bytes.NewReader(bodyBytes)) + if err != nil { + return nil, err + } + request.Header.Set("Content-Type", "application/json") + + if len(queryParams) > 0 { + query := request.URL.Query() + for k, v := range queryParams { + query.Add(k, v) + } + request.URL.RawQuery = query.Encode() + } + + return request, nil +} + +func NewHTTPRequest(method, url string, params map[string]string) (*http.Request, error) { + request, err := http.NewRequest(method, url, nil) + if err != nil { + return nil, err + } + + if len(params) > 0 { + query := request.URL.Query() + for k, v := range params { + query.Add(k, v) + } + request.URL.RawQuery = query.Encode() + } + + return request, nil +} + +func Decode(input interface{}, output interface{}) error { + bytes, err := json.Marshal(input) + if err != nil { + return err + } + return json.Unmarshal(bytes, output) +}