orders.go raw
1 package namecom
2
3 import (
4 "bytes"
5 "encoding/json"
6 "fmt"
7 "net/url"
8 )
9
10 var _ = bytes.MinRead
11
12 // ListOrders returns all orders in the account. It omits some information that can be retrieved from GetOrder.
13 func (n *NameCom) ListOrders(request *ListOrdersRequest) (*ListOrdersResponse, error) {
14 endpoint := fmt.Sprintf("/v4/orders")
15
16 values := url.Values{}
17 if request.PerPage != 0 {
18 values.Set("perPage", fmt.Sprintf("%d", request.PerPage))
19 }
20 if request.Page != 0 {
21 values.Set("page", fmt.Sprintf("%d", request.Page))
22 }
23
24 body, err := n.get(endpoint, values)
25 if err != nil {
26 return nil, err
27 }
28
29 resp := &ListOrdersResponse{}
30
31 err = json.NewDecoder(body).Decode(resp)
32 if err != nil {
33 return nil, err
34 }
35
36 return resp, nil
37 }
38
39 // GetOrder returns details about a specific order
40 func (n *NameCom) GetOrder(request *GetOrderRequest) (*Order, error) {
41 endpoint := fmt.Sprintf("/v4/orders/%d", request.OrderID)
42
43 values := url.Values{}
44
45 body, err := n.get(endpoint, values)
46 if err != nil {
47 return nil, err
48 }
49
50 resp := &Order{}
51
52 err = json.NewDecoder(body).Decode(resp)
53 if err != nil {
54 return nil, err
55 }
56
57 return resp, nil
58 }
59