mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
migrate code for github
This commit is contained in:
136
vendor/github.com/billputer/go-namecheap/domain.go
generated
vendored
Normal file
136
vendor/github.com/billputer/go-namecheap/domain.go
generated
vendored
Normal file
@@ -0,0 +1,136 @@
|
||||
package namecheap
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net/url"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
domainsGetList = "namecheap.domains.getList"
|
||||
domainsGetInfo = "namecheap.domains.getInfo"
|
||||
domainsCheck = "namecheap.domains.check"
|
||||
domainsCreate = "namecheap.domains.create"
|
||||
)
|
||||
|
||||
// DomainGetListResult represents the data returned by 'domains.getList'
|
||||
type DomainGetListResult struct {
|
||||
ID int `xml:"ID,attr"`
|
||||
Name string `xml:"Name,attr"`
|
||||
User string `xml:"User,attr"`
|
||||
Created string `xml:"Created,attr"`
|
||||
Expires string `xml:"Expires,attr"`
|
||||
IsExpired bool `xml:"IsExpired,attr"`
|
||||
IsLocked bool `xml:"IsLocked,attr"`
|
||||
AutoRenew bool `xml:"AutoRenew,attr"`
|
||||
WhoisGuard string `xml:"WhoisGuard,attr"`
|
||||
}
|
||||
|
||||
// DomainInfo represents the data returned by 'domains.getInfo'
|
||||
type DomainInfo struct {
|
||||
ID int `xml:"ID,attr"`
|
||||
Name string `xml:"DomainName,attr"`
|
||||
Owner string `xml:"OwnerName,attr"`
|
||||
Created string `xml:"DomainDetails>CreatedDate"`
|
||||
Expires string `xml:"DomainDetails>ExpiredDate"`
|
||||
IsExpired bool `xml:"IsExpired,attr"`
|
||||
IsLocked bool `xml:"IsLocked,attr"`
|
||||
AutoRenew bool `xml:"AutoRenew,attr"`
|
||||
DNSDetails DNSDetails `xml:"DnsDetails"`
|
||||
}
|
||||
|
||||
type DNSDetails struct {
|
||||
ProviderType string `xml:"ProviderType,attr"`
|
||||
IsUsingOurDNS bool `xml:"IsUsingOurDNS,attr"`
|
||||
Nameservers []string `xml:"Nameserver"`
|
||||
}
|
||||
|
||||
type DomainCheckResult struct {
|
||||
Domain string `xml:"Domain,attr"`
|
||||
Available bool `xml:"Available,attr"`
|
||||
}
|
||||
|
||||
type DomainCreateResult struct {
|
||||
Domain string `xml:"Domain,attr"`
|
||||
Registered bool `xml:"Registered,attr"`
|
||||
ChargedAmount float64 `xml:"ChargedAmount,attr"`
|
||||
DomainID int `xml:"DomainID,attr"`
|
||||
OrderID int `xml:"OrderID,attr"`
|
||||
TransactionID int `xml:"TransactionID,attr"`
|
||||
WhoisGuardEnable bool `xml:"WhoisGuardEnable,attr"`
|
||||
NonRealTimeDomain bool `xml:"NonRealTimeDomain,attr"`
|
||||
}
|
||||
|
||||
func (client *Client) DomainsGetList() ([]DomainGetListResult, error) {
|
||||
requestInfo := &ApiRequest{
|
||||
command: domainsGetList,
|
||||
method: "GET",
|
||||
params: url.Values{},
|
||||
}
|
||||
|
||||
resp, err := client.do(requestInfo)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return resp.Domains, nil
|
||||
}
|
||||
|
||||
func (client *Client) DomainGetInfo(domainName string) (*DomainInfo, error) {
|
||||
requestInfo := &ApiRequest{
|
||||
command: domainsGetInfo,
|
||||
method: "GET",
|
||||
params: url.Values{},
|
||||
}
|
||||
|
||||
requestInfo.params.Set("DomainName", domainName)
|
||||
|
||||
resp, err := client.do(requestInfo)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return resp.DomainInfo, nil
|
||||
}
|
||||
|
||||
func (client *Client) DomainsCheck(domainNames ...string) ([]DomainCheckResult, error) {
|
||||
requestInfo := &ApiRequest{
|
||||
command: domainsCheck,
|
||||
method: "GET",
|
||||
params: url.Values{},
|
||||
}
|
||||
|
||||
requestInfo.params.Set("DomainList", strings.Join(domainNames, ","))
|
||||
resp, err := client.do(requestInfo)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return resp.DomainsCheck, nil
|
||||
}
|
||||
|
||||
func (client *Client) DomainCreate(domainName string, years int) (*DomainCreateResult, error) {
|
||||
if client.Registrant == nil {
|
||||
return nil, errors.New("Registrant information on client cannot be empty")
|
||||
}
|
||||
|
||||
requestInfo := &ApiRequest{
|
||||
command: domainsCreate,
|
||||
method: "POST",
|
||||
params: url.Values{},
|
||||
}
|
||||
|
||||
requestInfo.params.Set("DomainName", domainName)
|
||||
requestInfo.params.Set("Years", strconv.Itoa(years))
|
||||
if err := client.Registrant.addValues(requestInfo.params); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
resp, err := client.do(requestInfo)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return resp.DomainCreate, nil
|
||||
}
|
||||
Reference in New Issue
Block a user