Passed
Push — main ( fd6179...b84f1a )
by Acho
55s
created

client.*StoresService.Get   A

Complexity

Conditions 3

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 8
nop 2
dl 0
loc 12
rs 10
c 0
b 0
f 0
1
package client
2
3
import (
4
	"context"
5
	"encoding/json"
6
	"net/http"
7
)
8
9
// StoresService is the API client for the `/v1/stores` endpoint
10
type StoresService service
11
12
// Get returns the store with the given ID.
13
// https://docs.lemonsqueezy.com/api/stores#retrieve-a-store
14
func (service *StoresService) Get(ctx context.Context, storeID string) (*StoreApiResponse, *Response, error) {
15
	response, err := service.client.do(ctx, http.MethodGet, "/v1/stores/"+storeID)
16
	if err != nil {
17
		return nil, response, err
18
	}
19
20
	store := new(StoreApiResponse)
21
	if err = json.Unmarshal(*response.Body, store); err != nil {
22
		return nil, response, err
23
	}
24
25
	return store, response, nil
26
}
27
28
// List returns a paginated list of stores.
29
// https://docs.lemonsqueezy.com/api/stores#list-all-stores
30
func (service *StoresService) List(ctx context.Context) (*StoreListApiResponse, *Response, error) {
31
	response, err := service.client.do(ctx, http.MethodGet, "/v1/stores/")
32
	if err != nil {
33
		return nil, response, err
34
	}
35
36
	stores := new(StoreListApiResponse)
37
	if err = json.Unmarshal(*response.Body, stores); err != nil {
38
		return nil, response, err
39
	}
40
41
	return stores, response, nil
42
}
43