This commit is contained in:
Bastian de Byl
2023-02-25 14:17:13 -05:00
parent 6849fad720
commit ee3e1cffa1
3 changed files with 15 additions and 58 deletions

2
go.mod
View File

@@ -1,3 +1,5 @@
module github.com/debyltech/go-snipcart
go 1.20
require github.com/debyltech/go-helpers v0.0.0-20230224002154-eb55816c71ec

View File

@@ -1,39 +0,0 @@
package snipcart
import (
"fmt"
"net/http"
)
type URLQuery struct {
Key string
Value string
}
func JSONGet(uri string, authName string, authValue string, queries []URLQuery) (*http.Response, error) {
client := &http.Client{}
request, err := http.NewRequest("GET", uri, nil)
if err != nil {
return nil, err
}
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 _, query := range queries {
q.Add(query.Key, query.Value)
}
request.URL.RawQuery = q.Encode()
}
response, err := client.Do(request)
if err != nil {
return nil, err
}
return response, nil
}

View File

@@ -3,8 +3,10 @@ package snipcart
import (
"encoding/base64"
"encoding/json"
"errors"
"fmt"
"strconv"
helper "github.com/debyltech/go-helpers"
)
const (
@@ -62,24 +64,8 @@ func NewSnipcartProvider(snipcartApiKey string) SnipcartProvider {
}
}
func (s *SnipcartProvider) GetOrders() (*SnipcartOrders, error) {
return s.GetOrdersByStatus("")
}
func (s *SnipcartProvider) GetOrdersByStatus(status OrderStatus) (*SnipcartOrders, error) {
if s.Limit == 0 {
s.Limit = defaultLimit
}
queries := []URLQuery{
{Key: "limit", Value: strconv.Itoa(s.Limit)},
}
if status != "" {
queries = append(queries, URLQuery{Key: "status", Value: string(status)})
}
response, err := JSONGet(orderUri, "Basic", s.AuthBase64, queries)
func (s *SnipcartProvider) GetOrders(queries map[string]string) (*SnipcartOrders, error) {
response, err := helper.Get(orderUri, "Basic", s.AuthBase64, queries)
if err != nil {
return nil, err
}
@@ -97,3 +83,11 @@ func (s *SnipcartProvider) GetOrdersByStatus(status OrderStatus) (*SnipcartOrder
return &orders, nil
}
func (s *SnipcartProvider) GetOrdersByStatus(status OrderStatus) (*SnipcartOrders, error) {
if status == "" {
return nil, errors.New("status is not set")
}
return s.GetOrders(map[string]string{"status": string(status)})
}