Skip to content

Commit 35ee153

Browse files
committed
Improve errors
1 parent 37e7d7b commit 35ee153

File tree

1 file changed

+52
-46
lines changed

1 file changed

+52
-46
lines changed

internal/tlspc/tlspc.go

Lines changed: 52 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -76,16 +76,16 @@ func (c *Client) GetUser(email string) (*User, error) {
7676

7777
resp, err := c.Get(path)
7878
if err != nil {
79-
return nil, err
79+
return nil, fmt.Errorf("Error getting user: %s", err)
8080
}
8181
body, err := io.ReadAll(resp.Body)
8282
if err != nil {
83-
return nil, err
83+
return nil, fmt.Errorf("Error reading response body: %s", err)
8484
}
8585
var users Users
8686
err = json.Unmarshal(body, &users)
8787
if err != nil {
88-
return nil, err
88+
return nil, fmt.Errorf("Error decoding response: %s", err)
8989
}
9090
if len(users.Users) != 1 {
9191
return nil, fmt.Errorf("Unexpected number of users returned (%d)", len(users.Users))
@@ -107,25 +107,25 @@ func (c *Client) CreateTeam(team Team) (*Team, error) {
107107

108108
body, err := json.Marshal(team)
109109
if err != nil {
110-
return nil, err
110+
return nil, fmt.Errorf("Error encoding request: %s", err)
111111
}
112112

113113
resp, err := c.Post(path, body)
114114
if err != nil {
115-
return nil, err
115+
return nil, fmt.Errorf("Error posting request: %s", err)
116116
}
117117

118118
respBody, err := io.ReadAll(resp.Body)
119119
if err != nil {
120-
return nil, err
120+
return nil, fmt.Errorf("Error reading response body: %s", err)
121121
}
122122
var created Team
123123
err = json.Unmarshal(respBody, &created)
124124
if err != nil {
125-
return nil, err
125+
return nil, fmt.Errorf("Error decoding response: %s", err)
126126
}
127127
if created.ID == "" {
128-
return nil, errors.New("Didn't create a team??" + string(body))
128+
return nil, fmt.Errorf("Didn't create a team; response was: %s", string(respBody))
129129
}
130130

131131
return &created, nil
@@ -136,20 +136,20 @@ func (c *Client) GetTeam(id string) (*Team, error) {
136136

137137
resp, err := c.Get(path)
138138
if err != nil {
139-
return nil, err
139+
return nil, fmt.Errorf("Error getting team: %s", err)
140140
}
141141

142142
respBody, err := io.ReadAll(resp.Body)
143143
if err != nil {
144-
return nil, err
144+
return nil, fmt.Errorf("Error reading response body: %s", err)
145145
}
146146
var team Team
147147
err = json.Unmarshal(respBody, &team)
148148
if err != nil {
149-
return nil, err
149+
return nil, fmt.Errorf("Error decoding response: %s", err)
150150
}
151151
if team.ID == "" {
152-
return nil, errors.New("Didn't find a Team")
152+
return nil, fmt.Errorf("Didn't find a Team; response was: %s", string(respBody))
153153
}
154154

155155
return &team, nil
@@ -174,27 +174,27 @@ func (c *Client) UpdateTeam(team Team) (*Team, error) {
174174
}
175175
body, err := json.Marshal(update)
176176
if err != nil {
177-
return nil, err
177+
return nil, fmt.Errorf("Error encoding request: %s", err)
178178
}
179179

180180
resp, err := c.Patch(path, body)
181181
if err != nil {
182-
return nil, err
183-
}
184-
if resp.StatusCode != http.StatusOK {
185-
return nil, errors.New("Failed to update team")
182+
return nil, fmt.Errorf("Error patching request: %s", err)
186183
}
187184
respBody, err := io.ReadAll(resp.Body)
188185
if err != nil {
189-
return nil, err
186+
return nil, fmt.Errorf("Error reading response body: %s", err)
187+
}
188+
if resp.StatusCode != http.StatusOK {
189+
return nil, fmt.Errorf("Failed to update Team; response was: %s", string(respBody))
190190
}
191191
var updated Team
192192
err = json.Unmarshal(respBody, &updated)
193193
if err != nil {
194-
return nil, err
194+
return nil, fmt.Errorf("Error decoding response: %s", err)
195195
}
196196
if updated.ID == "" {
197-
return nil, errors.New("Didn't create a team??" + string(body))
197+
return nil, fmt.Errorf("Didn't get a Team ID; response was: %s", string(respBody))
198198
}
199199

200200
return &updated, nil
@@ -212,25 +212,25 @@ func (c *Client) AddTeamOwners(id string, owners []string) (*Team, error) {
212212

213213
body, err := json.Marshal(update)
214214
if err != nil {
215-
return nil, err
215+
return nil, fmt.Errorf("Error encoding request: %s", err)
216216
}
217217

218218
resp, err := c.Post(path, body)
219219
if err != nil {
220-
return nil, err
220+
return nil, fmt.Errorf("Error posting request: %s", err)
221221
}
222222

223223
respBody, err := io.ReadAll(resp.Body)
224224
if err != nil {
225-
return nil, err
225+
return nil, fmt.Errorf("Error reading response body: %s", err)
226226
}
227227
var updated Team
228228
err = json.Unmarshal(respBody, &updated)
229229
if err != nil {
230-
return nil, err
230+
return nil, fmt.Errorf("Error decoding response: %s", err)
231231
}
232232
if updated.ID == "" {
233-
return nil, errors.New("Didn't create a team??" + string(body))
233+
return nil, fmt.Errorf("Didn't get a Team ID; response was: %s", string(respBody))
234234
}
235235

236236
return &updated, nil
@@ -244,25 +244,25 @@ func (c *Client) RemoveTeamOwners(id string, owners []string) (*Team, error) {
244244

245245
body, err := json.Marshal(update)
246246
if err != nil {
247-
return nil, err
247+
return nil, fmt.Errorf("Error encoding request: %s", err)
248248
}
249249

250250
resp, err := c.Delete(path, body)
251251
if err != nil {
252-
return nil, err
252+
return nil, fmt.Errorf("Error with delete request: %s", err)
253253
}
254254

255255
respBody, err := io.ReadAll(resp.Body)
256256
if err != nil {
257-
return nil, err
257+
return nil, fmt.Errorf("Error reading response body: %s", err)
258258
}
259259
var updated Team
260260
err = json.Unmarshal(respBody, &updated)
261261
if err != nil {
262-
return nil, err
262+
return nil, fmt.Errorf("Error decoding response: %s", err)
263263
}
264264
if updated.ID == "" {
265-
return nil, errors.New("Didn't create a team??" + string(body))
265+
return nil, fmt.Errorf("Didn't get a Team ID; response was: %s", string(respBody))
266266
}
267267

268268
return &updated, nil
@@ -273,12 +273,14 @@ func (c *Client) DeleteTeam(id string) error {
273273

274274
resp, err := c.Delete(path, nil)
275275
if err != nil {
276-
return err
276+
return fmt.Errorf("Error with delete request: %s", err)
277277
}
278278
// https://developer.venafi.com/tlsprotectcloud/reference/teams_delete says 204, but we get a 200 back
279279
// so accept either, in case behaviour gets fixed to match the docs in the future
280280
if resp.StatusCode != http.StatusNoContent && resp.StatusCode != http.StatusOK {
281-
return errors.New("Failed to delete team")
281+
// returning an error here anyway, no more information if we couldn't read the body
282+
respBody, _ := io.ReadAll(resp.Body)
283+
return fmt.Errorf("Failed to delete team; response was: %s", string(respBody))
282284
}
283285

284286
return nil
@@ -301,25 +303,25 @@ func (c *Client) CreateServiceAccount(sa ServiceAccount) (*ServiceAccount, error
301303

302304
body, err := json.Marshal(sa)
303305
if err != nil {
304-
return nil, err
306+
return nil, fmt.Errorf("Error encoding request: %s", err)
305307
}
306308

307309
resp, err := c.Post(path, body)
308310
if err != nil {
309-
return nil, err
311+
return nil, fmt.Errorf("Error posting request: %s", err)
310312
}
311313

312314
respBody, err := io.ReadAll(resp.Body)
313315
if err != nil {
314-
return nil, err
316+
return nil, fmt.Errorf("Error reading response body: %s", err)
315317
}
316318
var created ServiceAccount
317319
err = json.Unmarshal(respBody, &created)
318320
if err != nil {
319-
return nil, err
321+
return nil, fmt.Errorf("Error decoding response: %s", err)
320322
}
321323
if created.ID == "" {
322-
return nil, errors.New("Didn't create a Service Account??" + string(body))
324+
return nil, fmt.Errorf("Didn't create a service account; response was: %s", string(respBody))
323325
}
324326

325327
return &created, nil
@@ -330,20 +332,20 @@ func (c *Client) GetServiceAccount(id string) (*ServiceAccount, error) {
330332

331333
resp, err := c.Get(path)
332334
if err != nil {
333-
return nil, err
335+
return nil, fmt.Errorf("Error getting service account: %s", err)
334336
}
335337

336338
respBody, err := io.ReadAll(resp.Body)
337339
if err != nil {
338-
return nil, err
340+
return nil, fmt.Errorf("Error reading response body: %s", err)
339341
}
340342
var sa ServiceAccount
341343
err = json.Unmarshal(respBody, &sa)
342344
if err != nil {
343-
return nil, err
345+
return nil, fmt.Errorf("Error decoding response: %s", err)
344346
}
345347
if sa.ID == "" {
346-
return nil, errors.New("Didn't find a Service Account")
348+
return nil, fmt.Errorf("Didn't find a Service Account; response was: %s", string(respBody))
347349
}
348350

349351
return &sa, nil
@@ -359,15 +361,17 @@ func (c *Client) UpdateServiceAccount(sa ServiceAccount) error {
359361

360362
body, err := json.Marshal(sa)
361363
if err != nil {
362-
return err
364+
return fmt.Errorf("Error encoding request: %s", err)
363365
}
364366

365367
resp, err := c.Patch(path, body)
366368
if err != nil {
367-
return err
369+
return fmt.Errorf("Error patching request: %s", err)
368370
}
369371
if resp.StatusCode != http.StatusNoContent {
370-
return errors.New("Failed to update service account")
372+
// returning an error here anyway, no more information if we couldn't read the body
373+
respBody, _ := io.ReadAll(resp.Body)
374+
return fmt.Errorf("Failed to update Service Account; response was: %s", string(respBody))
371375
}
372376

373377
return nil
@@ -378,10 +382,12 @@ func (c *Client) DeleteServiceAccount(id string) error {
378382

379383
resp, err := c.Delete(path, nil)
380384
if err != nil {
381-
return err
385+
return fmt.Errorf("Error with delete request: %s", err)
382386
}
383387
if resp.StatusCode != http.StatusNoContent {
384-
return errors.New("Failed to delete service account")
388+
// returning an error here anyway, no more information if we couldn't read the body
389+
respBody, _ := io.ReadAll(resp.Body)
390+
return fmt.Errorf("Failed to delete Service Account; response was: %s", string(respBody))
385391
}
386392

387393
return nil

0 commit comments

Comments
 (0)