1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00

PORKBUN: implement ListZones() (#2622)

This commit is contained in:
Stefan
2023-11-15 16:28:41 +01:00
committed by GitHub
parent b5ce165903
commit b8096b7b8a
2 changed files with 44 additions and 0 deletions

View File

@ -41,6 +41,23 @@ type recordResponse struct {
Records []domainRecord `json:"records"`
}
type domainListRecord struct {
Domain string `json:"domain"`
Status string `json:"status"`
TLD string `json:"tld"`
CreateDate string `json:"createDate"`
ExpireDate string `json:"expireDate"`
SecurityLock string `json:"securityLock"`
WhoisPrivacy string `json:"whoisPrivacy"`
AutoRenew string `json:"autoRenew"`
NotLocal string `json:"notLocal"`
}
type domainListResponse struct {
Status string `json:"status"`
Domains []domainListRecord `json:"domains"`
}
type nsResponse struct {
Status string `json:"status"`
Nameservers []string `json:"ns"`
@ -150,3 +167,21 @@ func (c *porkbunProvider) updateNameservers(ns []string, domain string) error {
}
return nil
}
func (c *porkbunProvider) listAllDomains() ([]string, error) {
params := requestParams{}
var bodyString, err = c.post("/domain/listAll", params)
if err != nil {
return nil, fmt.Errorf("failed listing all domains from porkbun: %w", err)
}
var dlr domainListResponse
json.Unmarshal(bodyString, &dlr)
var domains []string
for _, domain := range dlr.Domains {
domains = append(domains, domain.Domain)
}
sort.Strings(domains)
return domains, nil
}

View File

@ -0,0 +1,9 @@
package porkbun
func (client *porkbunProvider) ListZones() ([]string, error) {
zones, err := client.listAllDomains()
if err != nil {
return nil, err
}
return zones, err
}