Skip to content

Commit caf1120

Browse files
committed
review: 4
1 parent fa0971a commit caf1120

File tree

2 files changed

+22
-75
lines changed

2 files changed

+22
-75
lines changed

providers/dns/nicru/internal/client.go

Lines changed: 16 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -80,19 +80,12 @@ func NewClient(httpClient *http.Client, serviceName string) (*Client, error) {
8080
func (c *Client) GetZones() ([]*Zone, error) {
8181
endpoint := c.baseURL.JoinPath("dns-master", "services", c.serviceName, "zones")
8282

83-
request, err := http.NewRequest(http.MethodGet, endpoint.String(), nil)
83+
req, err := http.NewRequest(http.MethodGet, endpoint.String(), nil)
8484
if err != nil {
8585
return nil, err
8686
}
8787

88-
response, err := c.httpClient.Do(request)
89-
if err != nil {
90-
return nil, err
91-
}
92-
93-
apiResponse := &Response{}
94-
95-
err = xml.NewDecoder(response.Body).Decode(apiResponse)
88+
apiResponse, err := c.do(req)
9689
if err != nil {
9790
return nil, err
9891
}
@@ -103,19 +96,12 @@ func (c *Client) GetZones() ([]*Zone, error) {
10396
func (c *Client) GetRecords(fqdn string) ([]*RR, error) {
10497
endpoint := c.baseURL.JoinPath("dns-master", "services", c.serviceName, "zones", fqdn, "records")
10598

106-
request, err := http.NewRequest(http.MethodGet, endpoint.String(), nil)
99+
req, err := http.NewRequest(http.MethodGet, endpoint.String(), nil)
107100
if err != nil {
108101
return nil, err
109102
}
110103

111-
response, err := c.httpClient.Do(request)
112-
if err != nil {
113-
return nil, err
114-
}
115-
116-
apiResponse := &Response{}
117-
118-
err = xml.NewDecoder(response.Body).Decode(apiResponse)
104+
apiResponse, err := c.do(req)
119105
if err != nil {
120106
return nil, err
121107
}
@@ -128,22 +114,6 @@ func (c *Client) GetRecords(fqdn string) ([]*RR, error) {
128114
return records, nil
129115
}
130116

131-
func (c *Client) GetTXTRecords(fqdn string) ([]*Txt, error) {
132-
records, err := c.GetRecords(fqdn)
133-
if err != nil {
134-
return nil, err
135-
}
136-
137-
var txtRecords []*Txt
138-
for _, record := range records {
139-
if record.Txt != nil {
140-
txtRecords = append(txtRecords, record.Txt)
141-
}
142-
}
143-
144-
return txtRecords, nil
145-
}
146-
147117
func (c *Client) AddTxtRecord(zoneName string, name string, content string, ttl int) (*Response, error) {
148118
request := &Request{RRList: &RrList{RR: []*RR{{
149119
Name: name,
@@ -152,7 +122,7 @@ func (c *Client) AddTxtRecord(zoneName string, name string, content string, ttl
152122
Txt: &Txt{String: content},
153123
}}}}
154124

155-
return c.add(zoneName, request)
125+
return c.addRecords(zoneName, request)
156126
}
157127

158128
func (c *Client) DeleteRecord(zoneName string, id string) (*Response, error) {
@@ -163,53 +133,21 @@ func (c *Client) DeleteRecord(zoneName string, id string) (*Response, error) {
163133
return nil, err
164134
}
165135

166-
response, err := c.httpClient.Do(req)
167-
if err != nil {
168-
return nil, err
169-
}
170-
171-
apiResponse := &Response{}
172-
173-
err = xml.NewDecoder(response.Body).Decode(apiResponse)
174-
if err != nil {
175-
return nil, err
176-
}
177-
178-
if apiResponse.Status != successStatus {
179-
return nil, err
180-
}
181-
182-
return apiResponse, nil
136+
return c.do(req)
183137
}
184138

185139
func (c *Client) CommitZone(zoneName string) (*Response, error) {
186140
endpoint := c.baseURL.JoinPath("dns-master", "services", c.serviceName, "zones", zoneName, "commit")
187141

188-
request, err := http.NewRequest(http.MethodPost, endpoint.String(), nil)
189-
if err != nil {
190-
return nil, err
191-
}
192-
193-
response, err := c.httpClient.Do(request)
142+
req, err := http.NewRequest(http.MethodPost, endpoint.String(), nil)
194143
if err != nil {
195144
return nil, err
196145
}
197146

198-
apiResponse := &Response{}
199-
200-
err = xml.NewDecoder(response.Body).Decode(apiResponse)
201-
if err != nil {
202-
return nil, err
203-
}
204-
205-
if apiResponse.Status != successStatus {
206-
return nil, err
207-
}
208-
209-
return apiResponse, nil
147+
return c.do(req)
210148
}
211149

212-
func (c *Client) add(zoneName string, request *Request) (*Response, error) {
150+
func (c *Client) addRecords(zoneName string, request *Request) (*Response, error) {
213151
endpoint := c.baseURL.JoinPath("dns-master", "services", c.serviceName, "zones", zoneName, "records")
214152

215153
body := &bytes.Buffer{}
@@ -222,14 +160,19 @@ func (c *Client) add(zoneName string, request *Request) (*Response, error) {
222160
return nil, err
223161
}
224162

225-
response, err := c.httpClient.Do(req)
163+
return c.do(req)
164+
}
165+
166+
func (c *Client) do(req *http.Request) (*Response, error) {
167+
resp, err := c.httpClient.Do(req)
226168
if err != nil {
227169
return nil, err
228170
}
171+
defer func() { _ = resp.Body.Close() }()
229172

230173
apiResponse := &Response{}
231174

232-
err = xml.NewDecoder(response.Body).Decode(apiResponse)
175+
err = xml.NewDecoder(resp.Body).Decode(apiResponse)
233176
if err != nil {
234177
return nil, err
235178
}

providers/dns/nicru/nicru.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,17 @@ func (p *DNSProvider) Present(domain, _, keyAuth string) error {
121121
return fmt.Errorf("nicru: %w", err)
122122
}
123123

124-
records, err := p.client.GetTXTRecords(authZone)
124+
records, err := p.client.GetRecords(authZone)
125125
if err != nil {
126126
return fmt.Errorf("nicru: %w", err)
127127
}
128128

129129
for _, record := range records {
130-
if record.Text == subDomain && record.String == info.Value {
130+
if record.Txt == nil {
131+
continue
132+
}
133+
134+
if record.Txt.Text == subDomain && record.Txt.String == info.Value {
131135
return nil
132136
}
133137
}

0 commit comments

Comments
 (0)