diff --git a/internal/dynuclient/client.go b/internal/dynuclient/client.go index 0111fe1..fcc4eb8 100644 --- a/internal/dynuclient/client.go +++ b/internal/dynuclient/client.go @@ -216,7 +216,7 @@ func (c *Client) CreateDNSRecord(ctx context.Context, domainID int64, req Create func (c *Client) UpdateDNSRecord(ctx context.Context, domainID int64, recordID int64, req UpdateDNSRecordRequest) (*DNSRecord, error) { var resp getDNSRecordResponse - if err := c.doRequest(ctx, http.MethodPut, fmt.Sprintf("/dns/%d/record/%d", domainID, recordID), buildDNSRecordUpsertPayload(req.RecordType, req.NodeName, req.Content, req.TTL, req.State, req.Group, req.Host), &resp); err != nil { + if err := c.doRequest(ctx, http.MethodPost, fmt.Sprintf("/dns/%d/record/%d", domainID, recordID), buildDNSRecordUpsertPayload(req.RecordType, req.NodeName, req.Content, req.TTL, req.State, req.Group, req.Host), &resp); err != nil { return nil, err } normalizeDNSRecord(&resp.DNSRecord) diff --git a/internal/dynuclient/client_test.go b/internal/dynuclient/client_test.go index e2f22e0..e64bac0 100644 --- a/internal/dynuclient/client_test.go +++ b/internal/dynuclient/client_test.go @@ -200,7 +200,7 @@ func TestClientCreateDNSRecordSendsIPv4AddressForARecord(t *testing.T) { func TestClientUpdateDNSRecordSendsIPv6AddressForAAAARecord(t *testing.T) { var captured map[string]any server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.Method != http.MethodPut || r.URL.Path != "/dns/1001/record/2002" { + if r.Method != http.MethodPost || r.URL.Path != "/dns/1001/record/2002" { t.Fatalf("unexpected request %s %s", r.Method, r.URL.Path) } if err := json.NewDecoder(r.Body).Decode(&captured); err != nil { diff --git a/internal/testutil/fakedynu/server.go b/internal/testutil/fakedynu/server.go index 008f5e7..64628fb 100644 --- a/internal/testutil/fakedynu/server.go +++ b/internal/testutil/fakedynu/server.go @@ -241,7 +241,7 @@ func (s *Server) serveRecordRoutes(w http.ResponseWriter, r *http.Request, segme case http.MethodGet: s.handleGetRecord(w, domainID, recordID) return - case http.MethodPut: + case http.MethodPut, http.MethodPost: s.handleUpdateRecord(w, r, domainID, recordID) return case http.MethodDelete: