Skip to content

Commit 543095d

Browse files
authored
Merge pull request #124 from DrFaust92/ctx-resources
ctx for resources
2 parents e04ff96 + 4210af7 commit 543095d

19 files changed

+387
-351
lines changed

bitbucket/resource_branching_model.go

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@ package bitbucket
22

33
import (
44
"bytes"
5+
"context"
56
"encoding/json"
67
"fmt"
78
"io"
89
"log"
910
"net/http"
1011
"strings"
1112

13+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1214
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1315
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1416
)
@@ -36,10 +38,10 @@ type BranchType struct {
3638

3739
func resourceBranchingModel() *schema.Resource {
3840
return &schema.Resource{
39-
Create: resourceBranchingModelsPut,
40-
Read: resourceBranchingModelsRead,
41-
Update: resourceBranchingModelsPut,
42-
Delete: resourceBranchingModelsDelete,
41+
CreateWithoutTimeout: resourceBranchingModelsPut,
42+
ReadWithoutTimeout: resourceBranchingModelsRead,
43+
UpdateWithoutTimeout: resourceBranchingModelsPut,
44+
DeleteWithoutTimeout: resourceBranchingModelsDelete,
4345
Importer: &schema.ResourceImporter{
4446
StateContext: schema.ImportStatePassthroughContext,
4547
},
@@ -137,15 +139,15 @@ func resourceBranchingModel() *schema.Resource {
137139
}
138140
}
139141

140-
func resourceBranchingModelsPut(d *schema.ResourceData, m interface{}) error {
142+
func resourceBranchingModelsPut(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
141143
client := m.(Clients).httpClient
142144
branchingModel := expandBranchingModel(d)
143145

144146
log.Printf("[DEBUG] Branching Model Request: %#v", branchingModel)
145147
bytedata, err := json.Marshal(branchingModel)
146148

147149
if err != nil {
148-
return err
150+
return diag.FromErr(err)
149151
}
150152

151153
branchingModelReq, err := client.Put(fmt.Sprintf("2.0/repositories/%s/%s/branching-model/settings",
@@ -154,30 +156,30 @@ func resourceBranchingModelsPut(d *schema.ResourceData, m interface{}) error {
154156
), bytes.NewBuffer(bytedata))
155157

156158
if err != nil {
157-
return err
159+
return diag.FromErr(err)
158160
}
159161

160162
body, readerr := io.ReadAll(branchingModelReq.Body)
161163
if readerr != nil {
162-
return readerr
164+
return diag.FromErr(readerr)
163165
}
164166

165167
decodeerr := json.Unmarshal(body, &branchingModel)
166168
if decodeerr != nil {
167-
return decodeerr
169+
return diag.FromErr(decodeerr)
168170
}
169171

170172
d.SetId(string(fmt.Sprintf("%s/%s", d.Get("owner").(string), d.Get("repository").(string))))
171173

172-
return resourceBranchingModelsRead(d, m)
174+
return resourceBranchingModelsRead(ctx, d, m)
173175
}
174176

175-
func resourceBranchingModelsRead(d *schema.ResourceData, m interface{}) error {
177+
func resourceBranchingModelsRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
176178
client := m.(Clients).httpClient
177179

178180
owner, repo, err := branchingModelId(d.Id())
179181
if err != nil {
180-
return err
182+
return diag.FromErr(err)
181183
}
182184
branchingModelsReq, _ := client.Get(fmt.Sprintf("2.0/repositories/%s/%s/branching-model", owner, repo))
183185

@@ -188,20 +190,20 @@ func resourceBranchingModelsRead(d *schema.ResourceData, m interface{}) error {
188190
}
189191

190192
if branchingModelsReq.Body == nil {
191-
return fmt.Errorf("error getting Branching Model (%s): empty response", d.Id())
193+
return diag.Errorf("error getting Branching Model (%s): empty response", d.Id())
192194
}
193195

194196
var branchingModel *BranchingModel
195197
body, readerr := io.ReadAll(branchingModelsReq.Body)
196198
if readerr != nil {
197-
return readerr
199+
return diag.FromErr(readerr)
198200
}
199201

200202
log.Printf("[DEBUG] Branching Model Response JSON: %v", string(body))
201203

202204
decodeerr := json.Unmarshal(body, &branchingModel)
203205
if decodeerr != nil {
204-
return decodeerr
206+
return diag.FromErr(decodeerr)
205207
}
206208

207209
log.Printf("[DEBUG] Branching Model Response Decoded: %#v", branchingModel)
@@ -215,21 +217,21 @@ func resourceBranchingModelsRead(d *schema.ResourceData, m interface{}) error {
215217
return nil
216218
}
217219

218-
func resourceBranchingModelsDelete(d *schema.ResourceData, m interface{}) error {
220+
func resourceBranchingModelsDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
219221
client := m.(Clients).httpClient
220222

221223
owner, repo, err := branchingModelId(d.Id())
222224
if err != nil {
223-
return err
225+
return diag.FromErr(err)
224226
}
225227

226228
_, err = client.Put(fmt.Sprintf("2.0/repositories/%s/%s/branching-model/settings", owner, repo), nil)
227229

228230
if err != nil {
229-
return err
231+
return diag.FromErr(err)
230232
}
231233

232-
return err
234+
return diag.FromErr(err)
233235
}
234236

235237
func expandBranchingModel(d *schema.ResourceData) *BranchingModel {

bitbucket/resource_default_reviewers.go

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package bitbucket
22

33
import (
4+
"context"
45
"encoding/json"
56
"fmt"
67
"log"
78
"net/http"
89
"strings"
910

11+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1012
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1113
)
1214

@@ -27,10 +29,10 @@ type PaginatedReviewers struct {
2729

2830
func resourceDefaultReviewers() *schema.Resource {
2931
return &schema.Resource{
30-
Create: resourceDefaultReviewersCreate,
31-
Read: resourceDefaultReviewersRead,
32-
Update: resourceDefaultReviewersUpdate,
33-
Delete: resourceDefaultReviewersDelete,
32+
CreateWithoutTimeout: resourceDefaultReviewersCreate,
33+
ReadWithoutTimeout: resourceDefaultReviewersRead,
34+
UpdateWithoutTimeout: resourceDefaultReviewersUpdate,
35+
DeleteWithoutTimeout: resourceDefaultReviewersDelete,
3436
Importer: &schema.ResourceImporter{
3537
StateContext: schema.ImportStatePassthroughContext,
3638
},
@@ -55,7 +57,7 @@ func resourceDefaultReviewers() *schema.Resource {
5557
}
5658
}
5759

58-
func resourceDefaultReviewersCreate(d *schema.ResourceData, m interface{}) error {
60+
func resourceDefaultReviewersCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
5961
c := m.(Clients).genClient
6062
prApi := c.ApiClient.PullrequestsApi
6163

@@ -66,30 +68,30 @@ func resourceDefaultReviewersCreate(d *schema.ResourceData, m interface{}) error
6668
_, reviewerResp, err := prApi.RepositoriesWorkspaceRepoSlugDefaultReviewersTargetUsernamePut(c.AuthContext, repo, userName, workspace)
6769

6870
if err != nil {
69-
return err
71+
return diag.FromErr(err)
7072
}
7173

7274
if reviewerResp.StatusCode != 200 {
73-
return fmt.Errorf("failed to create reviewer %s got code %d", userName, reviewerResp.StatusCode)
75+
return diag.Errorf("failed to create reviewer %s got code %d", userName, reviewerResp.StatusCode)
7476
}
7577
}
7678

7779
d.SetId(fmt.Sprintf("%s/%s/reviewers", workspace, repo))
78-
return resourceDefaultReviewersRead(d, m)
80+
return resourceDefaultReviewersRead(ctx, d, m)
7981
}
8082

81-
func resourceDefaultReviewersRead(d *schema.ResourceData, m interface{}) error {
83+
func resourceDefaultReviewersRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
8284
client := m.(Clients).httpClient
8385

8486
owner, repo, err := defaultReviewersId(d.Id())
8587
if err != nil {
86-
return err
88+
return diag.FromErr(err)
8789
}
8890
resourceURL := fmt.Sprintf("2.0/repositories/%s/%s/default-reviewers", owner, repo)
8991

9092
res, err := client.Get(resourceURL)
9193
if err != nil {
92-
return err
94+
return diag.FromErr(err)
9395
}
9496

9597
if res.StatusCode == http.StatusNotFound {
@@ -104,13 +106,13 @@ func resourceDefaultReviewersRead(d *schema.ResourceData, m interface{}) error {
104106
for {
105107
reviewersResponse, err := client.Get(resourceURL)
106108
if err != nil {
107-
return err
109+
return diag.FromErr(err)
108110
}
109111

110112
decoder := json.NewDecoder(reviewersResponse.Body)
111113
err = decoder.Decode(&reviewers)
112114
if err != nil {
113-
return err
115+
return diag.FromErr(err)
114116
}
115117

116118
for _, reviewer := range reviewers.Values {
@@ -133,7 +135,7 @@ func resourceDefaultReviewersRead(d *schema.ResourceData, m interface{}) error {
133135
return nil
134136
}
135137

136-
func resourceDefaultReviewersUpdate(d *schema.ResourceData, m interface{}) error {
138+
func resourceDefaultReviewersUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
137139
c := m.(Clients).genClient
138140

139141
prApi := c.ApiClient.PullrequestsApi
@@ -151,11 +153,11 @@ func resourceDefaultReviewersUpdate(d *schema.ResourceData, m interface{}) error
151153
_, reviewerResp, err := prApi.RepositoriesWorkspaceRepoSlugDefaultReviewersTargetUsernamePut(c.AuthContext, repo, userName, workspace)
152154

153155
if err != nil {
154-
return err
156+
return diag.FromErr(err)
155157
}
156158

157159
if reviewerResp.StatusCode != 200 {
158-
return fmt.Errorf("failed to create reviewer %s got code %d", userName, reviewerResp.StatusCode)
160+
return diag.Errorf("failed to create reviewer %s got code %d", userName, reviewerResp.StatusCode)
159161
}
160162
}
161163

@@ -164,21 +166,21 @@ func resourceDefaultReviewersUpdate(d *schema.ResourceData, m interface{}) error
164166
reviewerResp, err := prApi.RepositoriesWorkspaceRepoSlugDefaultReviewersTargetUsernameDelete(c.AuthContext, repo, userName, workspace)
165167

166168
if err != nil {
167-
return err
169+
return diag.FromErr(err)
168170
}
169171

170172
if reviewerResp.StatusCode != 204 {
171-
return fmt.Errorf("[%d] Could not delete %s from default reviewers",
173+
return diag.Errorf("[%d] Could not delete %s from default reviewers",
172174
reviewerResp.StatusCode,
173175
userName,
174176
)
175177
}
176178
}
177179

178-
return resourceDefaultReviewersRead(d, m)
180+
return resourceDefaultReviewersRead(ctx, d, m)
179181
}
180182

181-
func resourceDefaultReviewersDelete(d *schema.ResourceData, m interface{}) error {
183+
func resourceDefaultReviewersDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
182184
c := m.(Clients).genClient
183185
prApi := c.ApiClient.PullrequestsApi
184186

@@ -189,11 +191,11 @@ func resourceDefaultReviewersDelete(d *schema.ResourceData, m interface{}) error
189191
reviewerResp, err := prApi.RepositoriesWorkspaceRepoSlugDefaultReviewersTargetUsernameDelete(c.AuthContext, repo, userName, workspace)
190192

191193
if err != nil {
192-
return err
194+
return diag.FromErr(err)
193195
}
194196

195197
if reviewerResp.StatusCode != 204 {
196-
return fmt.Errorf("[%d] Could not delete %s from default reviewer",
198+
return diag.Errorf("[%d] Could not delete %s from default reviewer",
197199
reviewerResp.StatusCode,
198200
userName,
199201
)

0 commit comments

Comments
 (0)