Files
go-helpers/json/helper.go
2023-09-13 13:47:53 -04:00

90 lines
1.9 KiB
Go

package helper
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func Get(uri string, authName string, authValue string, queries map[string]string) (*http.Response, error) {
request, err := http.NewRequest("GET", uri, nil)
if err != nil {
return nil, err
}
client := &http.Client{}
request.Header.Set("Accept", "application/json")
request.Header.Set("Authorization", fmt.Sprintf("%s %s", authName, authValue))
if len(queries) > 0 {
q := request.URL.Query()
for key, value := range queries {
q.Add(key, value)
}
request.URL.RawQuery = q.Encode()
}
response, err := client.Do(request)
if err != nil {
return nil, err
}
return response, nil
}
func Post(uri string, authName string, authValue string, data any) (*http.Response, error) {
jsonBytes, err := json.Marshal(data)
if err != nil {
return nil, err
}
body := bytes.NewBuffer(jsonBytes)
request, err := http.NewRequest("POST", uri, body)
if err != nil {
return nil, err
}
client := &http.Client{}
request.Header.Set("Accept", "application/json")
request.Header.Set("Content-Type", "application/json")
request.Header.Set("Authorization", fmt.Sprintf("%s %s", authName, authValue))
response, err := client.Do(request)
if err != nil {
return nil, err
}
return response, nil
}
func Put(uri string, authName string, authValue string, data any) (*http.Response, error) {
jsonBytes, err := json.Marshal(data)
if err != nil {
return nil, err
}
body := bytes.NewBuffer(jsonBytes)
request, err := http.NewRequest("PUT", uri, body)
if err != nil {
return nil, err
}
client := &http.Client{}
request.Header.Set("Content-Type", "application/json")
request.Header.Set("Accept", "application/json")
request.Header.Set("Authorization", fmt.Sprintf("%s %s", authName, authValue))
response, err := client.Do(request)
if err != nil {
return nil, err
}
return response, nil
}