wedos: fix api call parameters (#1386)

This commit is contained in:
lubko 2021-04-14 10:13:48 +02:00 committed by GitHub
parent 9002e5c4ab
commit e38e32b906
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 28 deletions

View file

@ -33,18 +33,25 @@ type ResponsePayload struct {
SvTRID string `json:"svTRID,omitempty"` SvTRID string `json:"svTRID,omitempty"`
Command string `json:"command,omitempty"` Command string `json:"command,omitempty"`
Data json.RawMessage `json:"data"` Data json.RawMessage `json:"data"`
DNSRowsList []DNSRow
} }
type DNSRow struct { type DNSRow struct {
ID string `json:"ID,omitempty"` ID string `json:"ID,omitempty"`
Domain string `json:"domain,omitempty"`
Name string `json:"name,omitempty"` Name string `json:"name,omitempty"`
TTL json.Number `json:"ttl,omitempty" type:"integer"` TTL json.Number `json:"ttl,omitempty" type:"integer"`
Type string `json:"rdtype,omitempty"` Type string `json:"rdtype,omitempty"`
Data string `json:"rdata"` Data string `json:"rdata"`
} }
type DNSRowRequest struct {
ID string `json:"row_id,omitempty"`
Domain string `json:"domain,omitempty"`
Name string `json:"name,omitempty"`
TTL json.Number `json:"ttl,omitempty" type:"integer"`
Type string `json:"type,omitempty"`
Data string `json:"rdata"`
}
type APIRequest struct { type APIRequest struct {
User string `json:"user,omitempty"` User string `json:"user,omitempty"`
Auth string `json:"auth,omitempty"` Auth string `json:"auth,omitempty"`
@ -96,7 +103,7 @@ func (c *Client) GetRecords(ctx context.Context, zone string) ([]DNSRow, error)
// https://kb.wedos.com/en/wapi-api-interface/wapi-command-dns-add-row/ // https://kb.wedos.com/en/wapi-api-interface/wapi-command-dns-add-row/
// https://kb.wedos.com/en/wapi-api-interface/wapi-command-dns-row-update/ // https://kb.wedos.com/en/wapi-api-interface/wapi-command-dns-row-update/
func (c *Client) AddRecord(ctx context.Context, zone string, record DNSRow) error { func (c *Client) AddRecord(ctx context.Context, zone string, record DNSRow) error {
payload := DNSRow{ payload := DNSRowRequest{
Domain: dns01.UnFqdn(zone), Domain: dns01.UnFqdn(zone),
TTL: record.TTL, TTL: record.TTL,
Type: record.Type, Type: record.Type,
@ -123,7 +130,7 @@ func (c *Client) AddRecord(ctx context.Context, zone string, record DNSRow) erro
// If a record does not have an ID, it will be looked up. // If a record does not have an ID, it will be looked up.
// https://kb.wedos.com/en/wapi-api-interface/wapi-command-dns-row-delete/ // https://kb.wedos.com/en/wapi-api-interface/wapi-command-dns-row-delete/
func (c *Client) DeleteRecord(ctx context.Context, zone string, recordID string) error { func (c *Client) DeleteRecord(ctx context.Context, zone string, recordID string) error {
payload := DNSRow{ payload := DNSRowRequest{
Domain: dns01.UnFqdn(zone), Domain: dns01.UnFqdn(zone),
ID: recordID, ID: recordID,
} }

View file

@ -95,13 +95,12 @@ func TestClient_GetRecords(t *testing.T) {
} }
func TestClient_AddRecord(t *testing.T) { func TestClient_AddRecord(t *testing.T) {
expectedForm := `{"request":{"user":"user","auth":"xxx","command":"dns-row-add","data":{"domain":"example.com","name":"foo","ttl":1800,"rdtype":"TXT","rdata":"foobar"}}}` expectedForm := `{"request":{"user":"user","auth":"xxx","command":"dns-row-add","data":{"domain":"example.com","name":"foo","ttl":1800,"type":"TXT","rdata":"foobar"}}}`
client := setupNew(t, expectedForm, commandDNSRowAdd) client := setupNew(t, expectedForm, commandDNSRowAdd)
record := DNSRow{ record := DNSRow{
ID: "", ID: "",
Domain: "example.com",
Name: "foo", Name: "foo",
TTL: "1800", TTL: "1800",
Type: "TXT", Type: "TXT",
@ -113,13 +112,12 @@ func TestClient_AddRecord(t *testing.T) {
} }
func TestClient_AddRecord_update(t *testing.T) { func TestClient_AddRecord_update(t *testing.T) {
expectedForm := `{"request":{"user":"user","auth":"xxx","command":"dns-row-update","data":{"ID":"1","domain":"example.com","ttl":1800,"rdtype":"TXT","rdata":"foobar"}}}` expectedForm := `{"request":{"user":"user","auth":"xxx","command":"dns-row-update","data":{"row_id":"1","domain":"example.com","ttl":1800,"type":"TXT","rdata":"foobar"}}}`
client := setupNew(t, expectedForm, commandDNSRowUpdate) client := setupNew(t, expectedForm, commandDNSRowUpdate)
record := DNSRow{ record := DNSRow{
ID: "1", ID: "1",
Domain: "example.com",
Name: "foo", Name: "foo",
TTL: "1800", TTL: "1800",
Type: "TXT", Type: "TXT",
@ -131,7 +129,7 @@ func TestClient_AddRecord_update(t *testing.T) {
} }
func TestClient_DeleteRecord(t *testing.T) { func TestClient_DeleteRecord(t *testing.T) {
expectedForm := `{"request":{"user":"user","auth":"xxx","command":"dns-row-delete","data":{"ID":"1","domain":"example.com","rdata":""}}}` expectedForm := `{"request":{"user":"user","auth":"xxx","command":"dns-row-delete","data":{"row_id":"1","domain":"example.com","rdata":""}}}`
client := setupNew(t, expectedForm, commandDNSRowDelete) client := setupNew(t, expectedForm, commandDNSRowDelete)

View file

@ -112,7 +112,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
return fmt.Errorf("wedos: could not determine zone for domain %q: %w", domain, err) return fmt.Errorf("wedos: could not determine zone for domain %q: %w", domain, err)
} }
subDomain := strings.TrimSuffix(fqdn, authZone) subDomain := dns01.UnFqdn(strings.TrimSuffix(fqdn, authZone))
record := internal.DNSRow{ record := internal.DNSRow{
Name: subDomain, Name: subDomain,
@ -157,7 +157,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
return fmt.Errorf("wedos: could not determine zone for domain %q: %w", domain, err) return fmt.Errorf("wedos: could not determine zone for domain %q: %w", domain, err)
} }
subDomain := strings.TrimSuffix(fqdn, authZone) subDomain := dns01.UnFqdn(strings.TrimSuffix(fqdn, authZone))
records, err := d.client.GetRecords(ctx, authZone) records, err := d.client.GetRecords(ctx, authZone)
if err != nil { if err != nil {