Skip to content

Commit d9bd271

Browse files
committed
refactor: check success by 2xx range
1 parent 2d35645 commit d9bd271

File tree

6 files changed

+31
-33
lines changed

6 files changed

+31
-33
lines changed

client/buildingblock.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,7 @@ func (c *MeshStackProviderClient) ReadBuildingBlock(uuid string) (*MeshBuildingB
103103
return nil, nil
104104
}
105105

106-
if res.StatusCode != 200 {
107-
return nil, fmt.Errorf("unexpected status code: %d, %s", res.StatusCode, data)
108-
}
106+
isSuccessHTTPStatusOrThrow(res)
109107

110108
var bb MeshBuildingBlock
111109
err = json.Unmarshal(data, &bb)
@@ -141,9 +139,7 @@ func (c *MeshStackProviderClient) CreateBuildingBlock(bb *MeshBuildingBlockCreat
141139
return nil, err
142140
}
143141

144-
if res.StatusCode != 201 {
145-
return nil, fmt.Errorf("unexpected status code: %d, %s", res.StatusCode, data)
146-
}
142+
isSuccessHTTPStatusOrThrow(res)
147143

148144
var createdBb MeshBuildingBlock
149145
err = json.Unmarshal(data, &createdBb)

client/project.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,7 @@ func (c *MeshStackProviderClient) CreateProject(project *MeshProjectCreate) (*Me
178178
return nil, err
179179
}
180180

181-
if res.StatusCode != 201 {
182-
return nil, fmt.Errorf("unexpected status code: %d, %s", res.StatusCode, data)
183-
}
181+
isSuccessHTTPStatusOrThrow(res)
184182

185183
var createdProject MeshProject
186184
err = json.Unmarshal(data, &createdProject)
@@ -219,9 +217,7 @@ func (c *MeshStackProviderClient) UpdateProject(project *MeshProjectCreate) (*Me
219217
return nil, err
220218
}
221219

222-
if res.StatusCode != 200 {
223-
return nil, fmt.Errorf("unexpected status code: %d, %s", res.StatusCode, data)
224-
}
220+
isSuccessHTTPStatusOrThrow(res)
225221

226222
var updatedProject MeshProject
227223
err = json.Unmarshal(data, &updatedProject)

client/project_binding.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,7 @@ func (c *MeshStackProviderClient) readProjectBinding(name string, contentType st
7070
return nil, nil
7171
}
7272

73-
if res.StatusCode != 200 {
74-
return nil, fmt.Errorf("unexpected status code: %d, %s", res.StatusCode, data)
75-
}
73+
isSuccessHTTPStatusOrThrow(res)
7674

7775
var binding MeshProjectBinding
7876
err = json.Unmarshal(data, &binding)
@@ -120,9 +118,7 @@ func (c *MeshStackProviderClient) createProjectBinding(binding *MeshProjectBindi
120118
return nil, err
121119
}
122120

123-
if res.StatusCode != 200 {
124-
return nil, fmt.Errorf("unexpected status code: %d, %s", res.StatusCode, data)
125-
}
121+
isSuccessHTTPStatusOrThrow(res)
126122

127123
var createdBinding MeshProjectBinding
128124
err = json.Unmarshal(data, &createdBinding)

client/status_code_checker.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package client
2+
3+
import (
4+
"io"
5+
"fmt"
6+
"net/http"
7+
)
8+
9+
func isSuccessHTTPStatusOrThrow(resp *http.Response) error {
10+
data, err := io.ReadAll(res.Body)
11+
if err != nil {
12+
return nil, err
13+
}
14+
15+
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
16+
return fmt.Errorf("unexpected status code: got %d, expected 2xx range\nBody: %s", resp.StatusCode, data)
17+
}
18+
19+
return nil
20+
}

client/tag_definition.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,7 @@ func (c *MeshStackProviderClient) ReadTagDefinition(name string) (*MeshTagDefini
156156
}
157157
defer resp.Body.Close()
158158

159-
if resp.StatusCode != http.StatusOK {
160-
return nil, fmt.Errorf("failed to read tag definition: %s", resp.Status)
161-
}
159+
isSuccessHTTPStatusOrThrow(resp)
162160

163161
var tagDefinition MeshTagDefinition
164162
if err := json.NewDecoder(resp.Body).Decode(&tagDefinition); err != nil {
@@ -191,9 +189,7 @@ func (c *MeshStackProviderClient) CreateTagDefinition(tagDefinition *MeshTagDefi
191189
}
192190
defer resp.Body.Close()
193191

194-
if resp.StatusCode != http.StatusCreated {
195-
return nil, fmt.Errorf("failed to create tag definition: %s", resp.Status)
196-
}
192+
isSuccessHTTPStatusOrThrow(resp)
197193

198194
var createdTagDefinition MeshTagDefinition
199195
if err := json.NewDecoder(resp.Body).Decode(&createdTagDefinition); err != nil {
@@ -224,9 +220,7 @@ func (c *MeshStackProviderClient) UpdateTagDefinition(tagDefinition *MeshTagDefi
224220
}
225221
defer resp.Body.Close()
226222

227-
if resp.StatusCode != http.StatusOK {
228-
return nil, fmt.Errorf("failed to update tag definition: %s", resp.Status)
229-
}
223+
isSuccessHTTPStatusOrThrow(resp)
230224

231225
var updatedTagDefinition MeshTagDefinition
232226
if err := json.NewDecoder(resp.Body).Decode(&updatedTagDefinition); err != nil {

client/tenant.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,7 @@ func (c *MeshStackProviderClient) ReadTenant(workspace string, project string, p
8383
return nil, nil
8484
}
8585

86-
if res.StatusCode != 200 {
87-
return nil, fmt.Errorf("unexpected status code: %d, %s", res.StatusCode, data)
88-
}
86+
isSuccessHTTPStatusOrThrow(res)
8987

9088
var tenant MeshTenant
9189
err = json.Unmarshal(data, &tenant)
@@ -121,9 +119,7 @@ func (c *MeshStackProviderClient) CreateTenant(tenant *MeshTenantCreate) (*MeshT
121119
return nil, err
122120
}
123121

124-
if res.StatusCode != 201 {
125-
return nil, fmt.Errorf("unexpected status code: %d, %s", res.StatusCode, data)
126-
}
122+
isSuccessHTTPStatusOrThrow(res)
127123

128124
var createdTenant MeshTenant
129125
err = json.Unmarshal(data, &createdTenant)

0 commit comments

Comments
 (0)