feat: cloudflare DnsProvider 结构体

This commit is contained in:
Mmx233
2022-12-08 18:55:30 +08:00
parent d76f40d38e
commit db12e005e8
4 changed files with 62 additions and 8 deletions

View File

@@ -0,0 +1,34 @@
package cloudflare
import (
dnsUtil "github.com/Mmx233/BitSrunLoginGo/dns/util"
"github.com/cloudflare/cloudflare-go"
log "github.com/sirupsen/logrus"
"net/http"
)
type DnsProvider struct {
Api *cloudflare.API `mapstructure:"-"`
TTL uint `mapstructure:"-"`
Zone string `mapstructure:"zone"`
Email string `mapstructure:"email"`
Token string `mapstructure:"token"`
}
func New(ttl uint, conf map[string]interface{}, Http *http.Client) (*DnsProvider, error) {
var p = DnsProvider{
TTL: ttl,
}
e := dnsUtil.DecodeConfig(conf, &p)
if e != nil {
return nil, e
}
log.Debugln("cloudflare dns provider:", &p)
p.Api, e = cloudflare.New(p.Token, p.Email, cloudflare.HTTPClient(Http))
return &p, e
}
func (a DnsProvider) SetDomainRecord(domain, ip string) error {
}