1package namecom 2 3import ( 4 "bytes" 5 "encoding/json" 6 "fmt" 7 "net/url" 8) 9 10var _ = bytes.MinRead 11 12// ListDNSSECs lists all of the DNSSEC keys registered with the registry. 13func (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. 34func (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. 55func (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. 80func (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