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