diff --git a/drivers/alidns/alidns.go b/drivers/alidns/alidns.go index 89064e0..edfe719 100644 --- a/drivers/alidns/alidns.go +++ b/drivers/alidns/alidns.go @@ -3,9 +3,25 @@ package alidns import ( "context" + "github.com/alibabacloud-go/alidns-20150109/v5/client" "github.com/ssdomei232/goodBaby/model" ) -func deleteAliDNSRecord(ctx context.Context, rule *model.Rule) { - aliDNSClient, err := GetAliDNSClient(rule) +func deleteAliDNSRecord(ctx context.Context, rule *model.Rule) error { + aliDNSClient, err := getAliDNSClient(rule) + if err != nil { + return err + } + deleteRecordConfig, err := getDeleteRecordConfig(rule) + if err != nil { + return err + } + + _, err = aliDNSClient.DeleteDomainRecord(&client.DeleteDomainRecordRequest{ + RecordId: &deleteRecordConfig.RecordID, + }) + if err != nil { + return err + } + return nil } diff --git a/drivers/alidns/model.go b/drivers/alidns/model.go index 4bd9f24..ce52e6c 100644 --- a/drivers/alidns/model.go +++ b/drivers/alidns/model.go @@ -4,3 +4,7 @@ type AliDNSAccount struct { AK string `json:"ak"` SK string `json:"sk"` } + +type DeleteRecordConfig struct { + RecordID string `json:"record_id"` +} diff --git a/drivers/alidns/tool.go b/drivers/alidns/tool.go index 74bb760..d70e9c9 100644 --- a/drivers/alidns/tool.go +++ b/drivers/alidns/tool.go @@ -1,15 +1,17 @@ package alidns import ( + "encoding/json" + alidns "github.com/alibabacloud-go/alidns-20150109/v5/client" - openapi "github.com/alibabacloud-go/darabonba-openapi/client" + openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" "github.com/aliyun/credentials-go/credentials" "github.com/ssdomei232/goodBaby/handler/db" "github.com/ssdomei232/goodBaby/model" ) -func GetAliDNSClient(rule *model.Rule) (client *alidns.Client, err error) { +func getAliDNSClient(rule *model.Rule) (client *alidns.Client, err error) { var accountConfig AliDNSAccount // get config @@ -35,3 +37,13 @@ func GetAliDNSClient(rule *model.Rule) (client *alidns.Client, err error) { return client, nil } + +func getDeleteRecordConfig(rule *model.Rule) (*DeleteRecordConfig, error) { + var deleteRecordConfig DeleteRecordConfig + + if err := json.Unmarshal([]byte(rule.ConfigJson), &deleteRecordConfig); err != nil { + return nil, err + } + + return &deleteRecordConfig, nil +}