Files
go-helpers/helper.go
2023-02-26 02:24:18 -05:00

89 lines
1.8 KiB
Go

package helper
import (
"bytes"
"encoding/json"
"fmt"
"io"
"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 io.Reader) (*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("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 io.Reader) (*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("Authorization", fmt.Sprintf("%s %s", authName, authValue))
response, err := client.Do(request)
if err != nil {
return nil, err
}
return response, nil
}