@@ -80,19 +80,12 @@ func NewClient(httpClient *http.Client, serviceName string) (*Client, error) {
80
80
func (c * Client ) GetZones () ([]* Zone , error ) {
81
81
endpoint := c .baseURL .JoinPath ("dns-master" , "services" , c .serviceName , "zones" )
82
82
83
- request , err := http .NewRequest (http .MethodGet , endpoint .String (), nil )
83
+ req , err := http .NewRequest (http .MethodGet , endpoint .String (), nil )
84
84
if err != nil {
85
85
return nil , err
86
86
}
87
87
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 )
96
89
if err != nil {
97
90
return nil , err
98
91
}
@@ -103,19 +96,12 @@ func (c *Client) GetZones() ([]*Zone, error) {
103
96
func (c * Client ) GetRecords (fqdn string ) ([]* RR , error ) {
104
97
endpoint := c .baseURL .JoinPath ("dns-master" , "services" , c .serviceName , "zones" , fqdn , "records" )
105
98
106
- request , err := http .NewRequest (http .MethodGet , endpoint .String (), nil )
99
+ req , err := http .NewRequest (http .MethodGet , endpoint .String (), nil )
107
100
if err != nil {
108
101
return nil , err
109
102
}
110
103
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 )
119
105
if err != nil {
120
106
return nil , err
121
107
}
@@ -128,22 +114,6 @@ func (c *Client) GetRecords(fqdn string) ([]*RR, error) {
128
114
return records , nil
129
115
}
130
116
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
-
147
117
func (c * Client ) AddTxtRecord (zoneName string , name string , content string , ttl int ) (* Response , error ) {
148
118
request := & Request {RRList : & RrList {RR : []* RR {{
149
119
Name : name ,
@@ -152,7 +122,7 @@ func (c *Client) AddTxtRecord(zoneName string, name string, content string, ttl
152
122
Txt : & Txt {String : content },
153
123
}}}}
154
124
155
- return c .add (zoneName , request )
125
+ return c .addRecords (zoneName , request )
156
126
}
157
127
158
128
func (c * Client ) DeleteRecord (zoneName string , id string ) (* Response , error ) {
@@ -163,53 +133,21 @@ func (c *Client) DeleteRecord(zoneName string, id string) (*Response, error) {
163
133
return nil , err
164
134
}
165
135
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 )
183
137
}
184
138
185
139
func (c * Client ) CommitZone (zoneName string ) (* Response , error ) {
186
140
endpoint := c .baseURL .JoinPath ("dns-master" , "services" , c .serviceName , "zones" , zoneName , "commit" )
187
141
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 )
194
143
if err != nil {
195
144
return nil , err
196
145
}
197
146
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 )
210
148
}
211
149
212
- func (c * Client ) add (zoneName string , request * Request ) (* Response , error ) {
150
+ func (c * Client ) addRecords (zoneName string , request * Request ) (* Response , error ) {
213
151
endpoint := c .baseURL .JoinPath ("dns-master" , "services" , c .serviceName , "zones" , zoneName , "records" )
214
152
215
153
body := & bytes.Buffer {}
@@ -222,14 +160,19 @@ func (c *Client) add(zoneName string, request *Request) (*Response, error) {
222
160
return nil , err
223
161
}
224
162
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 )
226
168
if err != nil {
227
169
return nil , err
228
170
}
171
+ defer func () { _ = resp .Body .Close () }()
229
172
230
173
apiResponse := & Response {}
231
174
232
- err = xml .NewDecoder (response .Body ).Decode (apiResponse )
175
+ err = xml .NewDecoder (resp .Body ).Decode (apiResponse )
233
176
if err != nil {
234
177
return nil , err
235
178
}
0 commit comments