Skip to content

Commit 37fbbfb

Browse files
committed
Refactor to use Context-aware functions
Signed-off-by: Timo Sand <[email protected]>
1 parent be34688 commit 37fbbfb

1 file changed

Lines changed: 42 additions & 35 deletions

File tree

github/resource_github_team_settings.go

Lines changed: 42 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@ import (
55
"errors"
66
"strconv"
77

8+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
89
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
910
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1011
"github.com/shurcooL/githubv4"
1112
)
1213

1314
func resourceGithubTeamSettings() *schema.Resource {
1415
return &schema.Resource{
15-
Create: resourceGithubTeamSettingsCreate,
16-
Read: resourceGithubTeamSettingsRead,
17-
Update: resourceGithubTeamSettingsUpdate,
18-
Delete: resourceGithubTeamSettingsDelete,
16+
CreateContext: resourceGithubTeamSettingsCreate,
17+
ReadContext: resourceGithubTeamSettingsRead,
18+
UpdateContext: resourceGithubTeamSettingsUpdate,
19+
DeleteContext: resourceGithubTeamSettingsDelete,
1920
Importer: &schema.ResourceImporter{
2021
StateContext: resourceGithubTeamSettingsImport,
2122
},
@@ -72,36 +73,32 @@ func resourceGithubTeamSettings() *schema.Resource {
7273
}
7374
}
7475

75-
func resourceGithubTeamSettingsCreate(d *schema.ResourceData, meta any) error {
76-
err := checkOrganization(meta)
77-
if err != nil {
78-
return err
76+
func resourceGithubTeamSettingsCreate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
77+
if err := checkOrganization(meta); err != nil {
78+
return diag.FromErr(err)
7979
}
8080

81+
teamIDString := d.Get("team_id").(string)
82+
8183
// Given a string that is either a team id or team slug, return the
8284
// get the basic details of the team including node_id and slug
83-
ctx := context.Background()
84-
85-
teamIDString, _ := d.Get("team_id").(string)
86-
8785
nodeId, slug, err := resolveTeamIDs(teamIDString, meta.(*Owner), ctx)
8886
if err != nil {
89-
return err
87+
return diag.FromErr(err)
9088
}
9189
d.SetId(nodeId)
9290
if err = d.Set("team_slug", slug); err != nil {
93-
return err
91+
return diag.FromErr(err)
9492
}
9593
if err = d.Set("team_uid", nodeId); err != nil {
96-
return err
94+
return diag.FromErr(err)
9795
}
98-
return resourceGithubTeamSettingsUpdate(d, meta)
96+
return resourceGithubTeamSettingsUpdate(ctx, d, meta)
9997
}
10098

101-
func resourceGithubTeamSettingsRead(d *schema.ResourceData, meta any) error {
102-
err := checkOrganization(meta)
103-
if err != nil {
104-
return err
99+
func resourceGithubTeamSettingsRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
100+
if err := checkOrganization(meta); err != nil {
101+
return diag.FromErr(err)
105102
}
106103

107104
graphql := meta.(*Owner).v4client
@@ -115,9 +112,9 @@ func resourceGithubTeamSettingsRead(d *schema.ResourceData, meta any) error {
115112
"login": githubv4.String(orgName),
116113
}
117114

118-
e := graphql.Query(meta.(*Owner).StopContext, &query, variables)
119-
if e != nil {
120-
return e
115+
err := graphql.Query(ctx, &query, variables)
116+
if err != nil {
117+
return diag.FromErr(err)
121118
}
122119

123120
if query.Organization.Team.ReviewRequestDelegation {
@@ -126,21 +123,19 @@ func resourceGithubTeamSettingsRead(d *schema.ResourceData, meta any) error {
126123
reviewRequestDelegation["member_count"] = query.Organization.Team.ReviewRequestDelegationCount
127124
reviewRequestDelegation["notify"] = query.Organization.Team.ReviewRequestDelegationNotifyAll
128125
if err = d.Set("review_request_delegation", []any{reviewRequestDelegation}); err != nil {
129-
return err
126+
return diag.FromErr(err)
130127
}
131128
} else {
132129
if err = d.Set("review_request_delegation", []any{}); err != nil {
133-
return err
130+
return diag.FromErr(err)
134131
}
135132
}
136133

137134
return nil
138135
}
139136

140-
func resourceGithubTeamSettingsUpdate(d *schema.ResourceData, meta any) error {
137+
func resourceGithubTeamSettingsUpdate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
141138
if d.HasChange("review_request_delegation") || d.IsNewResource() {
142-
143-
ctx := context.WithValue(context.Background(), ctxId, d.Id())
144139
graphql := meta.(*Owner).v4client
145140
if setting := d.Get("review_request_delegation").([]any); len(setting) == 0 {
146141
var mutation struct {
@@ -149,7 +144,11 @@ func resourceGithubTeamSettingsUpdate(d *schema.ResourceData, meta any) error {
149144
} `graphql:"updateTeamReviewAssignment(input:$input)"`
150145
}
151146

152-
return graphql.Mutate(ctx, &mutation, defaultTeamReviewAssignmentSettings(d.Id()), nil)
147+
err := graphql.Mutate(ctx, &mutation, defaultTeamReviewAssignmentSettings(d.Id()), nil)
148+
if err != nil {
149+
return diag.FromErr(err)
150+
}
151+
return nil
153152
} else {
154153
settings := d.Get("review_request_delegation").([]any)[0].(map[string]any)
155154

@@ -160,21 +159,25 @@ func resourceGithubTeamSettingsUpdate(d *schema.ResourceData, meta any) error {
160159
}
161160

162161
teamReviewAlgorithm := githubv4.TeamReviewAssignmentAlgorithm(settings["algorithm"].(string))
163-
return graphql.Mutate(ctx, &mutation, githubv4.UpdateTeamReviewAssignmentInput{
162+
updateTeamReviewAssignmentInput := githubv4.UpdateTeamReviewAssignmentInput{
164163
ID: d.Id(),
165164
Enabled: githubv4.Boolean(true),
166165
Algorithm: &teamReviewAlgorithm,
167166
TeamMemberCount: new(githubv4.Int(settings["member_count"].(int))),
168167
NotifyTeam: new(githubv4.Boolean(settings["notify"].(bool))),
169-
}, nil)
168+
}
169+
err := graphql.Mutate(ctx, &mutation, updateTeamReviewAssignmentInput, nil)
170+
if err != nil {
171+
return diag.FromErr(err)
172+
}
173+
return nil
170174
}
171175
}
172176

173-
return resourceGithubTeamSettingsRead(d, meta)
177+
return resourceGithubTeamSettingsRead(ctx, d, meta)
174178
}
175179

176-
func resourceGithubTeamSettingsDelete(d *schema.ResourceData, meta any) error {
177-
ctx := context.WithValue(context.Background(), ctxId, d.Id())
180+
func resourceGithubTeamSettingsDelete(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
178181
graphql := meta.(*Owner).v4client
179182

180183
var mutation struct {
@@ -183,7 +186,11 @@ func resourceGithubTeamSettingsDelete(d *schema.ResourceData, meta any) error {
183186
} `graphql:"updateTeamReviewAssignment(input:$input)"`
184187
}
185188

186-
return graphql.Mutate(ctx, &mutation, defaultTeamReviewAssignmentSettings(d.Id()), nil)
189+
err := graphql.Mutate(ctx, &mutation, defaultTeamReviewAssignmentSettings(d.Id()), nil)
190+
if err != nil {
191+
return diag.FromErr(err)
192+
}
193+
return nil
187194
}
188195

189196
func resourceGithubTeamSettingsImport(ctx context.Context, d *schema.ResourceData, meta any) ([]*schema.ResourceData, error) {

0 commit comments

Comments
 (0)