diff --git a/internal/unifi/client.go b/internal/unifi/client.go index 86ff7cb..a62f073 100644 --- a/internal/unifi/client.go +++ b/internal/unifi/client.go @@ -17,7 +17,6 @@ type Client struct { BaseURL string HTTPClient *http.Client csrf string - records []DNSRecord } // DNSRecord represents a DNS record in the API. @@ -205,7 +204,6 @@ func (c *Client) ListRecords() ([]DNSRecord, error) { return nil, err } - c.records = records // store records for later use return records, nil } @@ -288,11 +286,12 @@ func (c *Client) DeleteEndpoint(endpoint *endpoint.Endpoint) error { // LookupIdentifier finds the ID of a DNS record. func (c *Client) LookupIdentifier(Key string, RecordType string) (string, error) { - if c.records == nil { - c.ListRecords() + records, err := c.ListRecords() + if err != nil { + return "", err } - for _, r := range c.records { + for _, r := range records { if r.Key == Key && r.RecordType == RecordType { return r.ID, nil } diff --git a/internal/unifi/provider.go b/internal/unifi/provider.go index 98a0caf..0c24325 100644 --- a/internal/unifi/provider.go +++ b/internal/unifi/provider.go @@ -61,8 +61,8 @@ func (p *Provider) Records(ctx context.Context) ([]*endpoint.Endpoint, error) { // ApplyChanges applies a given set of changes in the DNS provider. func (p *Provider) ApplyChanges(ctx context.Context, changes *plan.Changes) error { - for _, ep := range changes.Create { - if _, err := p.client.CreateEndpoint(ep); err != nil { + for _, ep := range changes.Delete { + if err := p.client.DeleteEndpoint(ep); err != nil { return err } } @@ -73,8 +73,8 @@ func (p *Provider) ApplyChanges(ctx context.Context, changes *plan.Changes) erro } } - for _, ep := range changes.Delete { - if err := p.client.DeleteEndpoint(ep); err != nil { + for _, ep := range changes.Create { + if _, err := p.client.CreateEndpoint(ep); err != nil { return err } }