Skip to content

Commit f6a990a

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

File tree

6 files changed

+41
-33
lines changed

6 files changed

+41
-33
lines changed

client/buildingblock.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"io"
88
"net/http"
99
"net/url"
10+
11+
"terraform-provider-meshstack/status_code_checker"
1012
)
1113

1214
const (
@@ -103,9 +105,7 @@ func (c *MeshStackProviderClient) ReadBuildingBlock(uuid string) (*MeshBuildingB
103105
return nil, nil
104106
}
105107

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

110110
var bb MeshBuildingBlock
111111
err = json.Unmarshal(data, &bb)
@@ -141,9 +141,7 @@ func (c *MeshStackProviderClient) CreateBuildingBlock(bb *MeshBuildingBlockCreat
141141
return nil, err
142142
}
143143

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

148146
var createdBb MeshBuildingBlock
149147
err = json.Unmarshal(data, &createdBb)

client/project.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"io"
88
"net/http"
99
"net/url"
10+
11+
"terraform-provider-meshstack/status_code_checker"
1012
)
1113

1214
const CONTENT_TYPE_PROJECT = "application/vnd.meshcloud.api.meshproject.v2.hal+json"
@@ -178,9 +180,7 @@ func (c *MeshStackProviderClient) CreateProject(project *MeshProjectCreate) (*Me
178180
return nil, err
179181
}
180182

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

185185
var createdProject MeshProject
186186
err = json.Unmarshal(data, &createdProject)
@@ -219,9 +219,7 @@ func (c *MeshStackProviderClient) UpdateProject(project *MeshProjectCreate) (*Me
219219
return nil, err
220220
}
221221

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

226224
var updatedProject MeshProject
227225
err = json.Unmarshal(data, &updatedProject)

client/project_binding.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"io"
88
"net/http"
99
"net/url"
10+
11+
"terraform-provider-meshstack/status_code_checker"
1012
)
1113

1214
type MeshProjectBinding struct {
@@ -70,9 +72,7 @@ func (c *MeshStackProviderClient) readProjectBinding(name string, contentType st
7072
return nil, nil
7173
}
7274

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

7777
var binding MeshProjectBinding
7878
err = json.Unmarshal(data, &binding)
@@ -120,9 +120,7 @@ func (c *MeshStackProviderClient) createProjectBinding(binding *MeshProjectBindi
120120
return nil, err
121121
}
122122

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

127125
var createdBinding MeshProjectBinding
128126
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: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"io"
88
"net/http"
99
"net/url"
10+
11+
"terraform-provider-meshstack/status_code_checker"
1012
)
1113

1214
const API_VERSION_TAG_DEFINITION = "v1"
@@ -156,9 +158,7 @@ func (c *MeshStackProviderClient) ReadTagDefinition(name string) (*MeshTagDefini
156158
}
157159
defer resp.Body.Close()
158160

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

163163
var tagDefinition MeshTagDefinition
164164
if err := json.NewDecoder(resp.Body).Decode(&tagDefinition); err != nil {
@@ -191,9 +191,7 @@ func (c *MeshStackProviderClient) CreateTagDefinition(tagDefinition *MeshTagDefi
191191
}
192192
defer resp.Body.Close()
193193

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

198196
var createdTagDefinition MeshTagDefinition
199197
if err := json.NewDecoder(resp.Body).Decode(&createdTagDefinition); err != nil {
@@ -224,9 +222,7 @@ func (c *MeshStackProviderClient) UpdateTagDefinition(tagDefinition *MeshTagDefi
224222
}
225223
defer resp.Body.Close()
226224

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

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

client/tenant.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"io"
88
"net/http"
99
"net/url"
10+
11+
"./helper"
1012
)
1113

1214
const CONTENT_TYPE_TENANT = "application/vnd.meshcloud.api.meshtenant.v3.hal+json"
@@ -83,9 +85,7 @@ func (c *MeshStackProviderClient) ReadTenant(workspace string, project string, p
8385
return nil, nil
8486
}
8587

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

9090
var tenant MeshTenant
9191
err = json.Unmarshal(data, &tenant)
@@ -121,9 +121,7 @@ func (c *MeshStackProviderClient) CreateTenant(tenant *MeshTenantCreate) (*MeshT
121121
return nil, err
122122
}
123123

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

128126
var createdTenant MeshTenant
129127
err = json.Unmarshal(data, &createdTenant)

0 commit comments

Comments
 (0)