Merge branch 'next' into feat/new-workflow-ui

This commit is contained in:
Fu Diwei
2024-12-25 21:06:59 +08:00
16 changed files with 267 additions and 3 deletions

View File

@@ -39,6 +39,7 @@ const (
configTypeCloudflare = "cloudflare"
configTypeGoDaddy = "godaddy"
configTypeHuaweiCloud = "huaweicloud"
configTypeNameDotCom = "namedotcom"
configTypeNameSilo = "namesilo"
configTypePowerDNS = "powerdns"
configTypeTencentCloud = "tencentcloud"
@@ -225,6 +226,8 @@ func GetWithTypeOption(t string, option *ApplyOption) (Applicant, error) {
return NewGoDaddyApplicant(option), nil
case configTypeHuaweiCloud:
return NewHuaweiCloudApplicant(option), nil
case configTypeNameDotCom:
return NewNameDotComApplicant(option), nil
case configTypeNameSilo:
return NewNamesiloApplicant(option), nil
case configTypePowerDNS:

View File

@@ -0,0 +1,38 @@
package applicant
import (
"encoding/json"
"time"
"github.com/go-acme/lego/v4/providers/dns/namedotcom"
"github.com/usual2970/certimate/internal/domain"
)
type nameDotComApplicant struct {
option *ApplyOption
}
func NewNameDotComApplicant(option *ApplyOption) Applicant {
return &nameDotComApplicant{
option: option,
}
}
func (a *nameDotComApplicant) Apply() (*Certificate, error) {
access := &domain.NameDotComAccess{}
json.Unmarshal([]byte(a.option.Access), access)
config := namedotcom.NewDefaultConfig()
config.Username = access.Username
config.APIToken = access.ApiToken
if a.option.Timeout != 0 {
config.PropagationTimeout = time.Duration(a.option.Timeout) * time.Second
}
provider, err := namedotcom.NewDNSProviderConfig(config)
if err != nil {
return nil, err
}
return apply(a.option, provider)
}