discount_redemption_service.go   A
last analyzed

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 6
eloc 22
dl 0
loc 43
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A lemonsqueezy.*DiscountRedemptionsService.Get 0 12 3
A lemonsqueezy.*DiscountRedemptionsService.List 0 12 3
1
package lemonsqueezy
2
3
import (
4
	"context"
5
	"encoding/json"
6
	"net/http"
7
)
8
9
// DiscountRedemptionsService is the API client for the `/v1/discount-redemptions` endpoint
10
type DiscountRedemptionsService service
11
12
// Get returns the discount redemption with the given ID.
13
//
14
// https://docs.lemonsqueezy.com/api/discount-redemptions#retrieve-a-discount-redemption
15
func (service *DiscountRedemptionsService) Get(ctx context.Context, invoiceID string) (*DiscountRedemptionApiResponse, *Response, error) {
16
	response, err := service.client.do(ctx, http.MethodGet, "/v1/discount-redemptions/"+invoiceID)
17
	if err != nil {
18
		return nil, response, err
19
	}
20
21
	redemption := new(DiscountRedemptionApiResponse)
22
	if err = json.Unmarshal(*response.Body, redemption); err != nil {
23
		return nil, response, err
24
	}
25
26
	return redemption, response, nil
27
}
28
29
// List a paginated list of discount redemptions.
30
//
31
// https://docs.lemonsqueezy.com/api/discount-redemptions#list-all-discount-redemptions
32
func (service *DiscountRedemptionsService) List(ctx context.Context) (*DiscountRedemptionsApiResponse, *Response, error) {
33
	response, err := service.client.do(ctx, http.MethodGet, "/v1/discount-redemptions")
34
	if err != nil {
35
		return nil, response, err
36
	}
37
38
	redemptions := new(DiscountRedemptionsApiResponse)
39
	if err = json.Unmarshal(*response.Body, redemptions); err != nil {
40
		return nil, response, err
41
	}
42
43
	return redemptions, response, nil
44
}
45