dnssecs.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 // ListDNSSECs lists all of the DNSSEC keys registered with the registry.
13 func (n *NameCom) ListDNSSECs(request *ListDNSSECsRequest) (*ListDNSSECsResponse, error) {
14 endpoint := fmt.Sprintf("/v4/domains/%s/dnssec", request.DomainName)
15
16 values := url.Values{}
17
18 body, err := n.get(endpoint, values)
19 if err != nil {
20 return nil, err
21 }
22
23 resp := &ListDNSSECsResponse{}
24
25 err = json.NewDecoder(body).Decode(resp)
26 if err != nil {
27 return nil, err
28 }
29
30 return resp, nil
31 }
32
33 // GetDNSSEC retrieves the details for a key registered with the registry.
34 func (n *NameCom) GetDNSSEC(request *GetDNSSECRequest) (*DNSSEC, error) {
35 endpoint := fmt.Sprintf("/v4/domains/%s/dnssec/%s", request.DomainName, request.Digest)
36
37 values := url.Values{}
38
39 body, err := n.get(endpoint, values)
40 if err != nil {
41 return nil, err
42 }
43
44 resp := &DNSSEC{}
45
46 err = json.NewDecoder(body).Decode(resp)
47 if err != nil {
48 return nil, err
49 }
50
51 return resp, nil
52 }
53
54 // CreateDNSSEC registers a DNSSEC key with the registry.
55 func (n *NameCom) CreateDNSSEC(request *DNSSEC) (*DNSSEC, error) {
56 endpoint := fmt.Sprintf("/v4/domains/%s/dnssec", request.DomainName)
57
58 post := &bytes.Buffer{}
59 err := json.NewEncoder(post).Encode(request)
60 if err != nil {
61 return nil, err
62 }
63
64 body, err := n.post(endpoint, post)
65 if err != nil {
66 return nil, err
67 }
68
69 resp := &DNSSEC{}
70
71 err = json.NewDecoder(body).Decode(resp)
72 if err != nil {
73 return nil, err
74 }
75
76 return resp, nil
77 }
78
79 // DeleteDNSSEC removes a DNSSEC key from the registry.
80 func (n *NameCom) DeleteDNSSEC(request *DeleteDNSSECRequest) (*EmptyResponse, error) {
81 endpoint := fmt.Sprintf("/v4/domains/%s/dnssec/%s", request.DomainName, request.Digest)
82
83 post := &bytes.Buffer{}
84 err := json.NewEncoder(post).Encode(request)
85 if err != nil {
86 return nil, err
87 }
88
89 body, err := n.delete(endpoint, post)
90 if err != nil {
91 return nil, err
92 }
93
94 resp := &EmptyResponse{}
95
96 err = json.NewDecoder(body).Decode(resp)
97 if err != nil {
98 return nil, err
99 }
100
101 return resp, nil
102 }
103