Skip to content

Commit f9aa323

Browse files
committed
Use context-aware CRUD functions for Service Microsoft Teams resource
1 parent ee2600f commit f9aa323

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

gitlab/resource_gitlab_service_microsoft_teams.go

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
package gitlab
22

33
import (
4-
"fmt"
4+
"context"
55
"log"
66
"net/http"
77

8+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
89
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
910
gitlab "github.com/xanzy/go-gitlab"
1011
)
1112

1213
func resourceGitlabServiceMicrosoftTeams() *schema.Resource {
1314
return &schema.Resource{
14-
Create: resourceGitlabServiceMicrosoftTeamsCreate,
15-
Read: resourceGitlabServiceMicrosoftTeamsRead,
16-
Update: resourceGitlabServiceMicrosoftTeamsUpdate,
17-
Delete: resourceGitlabServiceMicrosoftTeamsDelete,
15+
CreateContext: resourceGitlabServiceMicrosoftTeamsCreate,
16+
ReadContext: resourceGitlabServiceMicrosoftTeamsRead,
17+
UpdateContext: resourceGitlabServiceMicrosoftTeamsUpdate,
18+
DeleteContext: resourceGitlabServiceMicrosoftTeamsDelete,
1819
Importer: &schema.ResourceImporter{
1920
StateContext: schema.ImportStatePassthroughContext,
2021
},
@@ -90,7 +91,7 @@ func resourceGitlabServiceMicrosoftTeams() *schema.Resource {
9091
}
9192
}
9293

93-
func resourceGitlabServiceMicrosoftTeamsCreate(d *schema.ResourceData, meta interface{}) error {
94+
func resourceGitlabServiceMicrosoftTeamsCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
9495
client := meta.(*gitlab.Client)
9596
project := d.Get("project").(string)
9697
d.SetId(project)
@@ -112,32 +113,32 @@ func resourceGitlabServiceMicrosoftTeamsCreate(d *schema.ResourceData, meta inte
112113

113114
log.Printf("[DEBUG] Create Gitlab Microsoft Teams service")
114115

115-
if _, err := client.Services.SetMicrosoftTeamsService(project, options); err != nil {
116-
return fmt.Errorf("couldn't create Gitlab Microsoft Teams service: %w", err)
116+
if _, err := client.Services.SetMicrosoftTeamsService(project, options, gitlab.WithContext(ctx)); err != nil {
117+
return diag.Errorf("couldn't create Gitlab Microsoft Teams service: %v", err)
117118
}
118119

119-
return resourceGitlabServiceMicrosoftTeamsRead(d, meta)
120+
return resourceGitlabServiceMicrosoftTeamsRead(ctx, d, meta)
120121
}
121122

122-
func resourceGitlabServiceMicrosoftTeamsRead(d *schema.ResourceData, meta interface{}) error {
123+
func resourceGitlabServiceMicrosoftTeamsRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
123124
client := meta.(*gitlab.Client)
124125
project := d.Id()
125126

126-
p, resp, err := client.Projects.GetProject(project, nil)
127+
p, resp, err := client.Projects.GetProject(project, nil, gitlab.WithContext(ctx))
127128
if err != nil {
128129
if resp != nil && resp.StatusCode == http.StatusNotFound {
129130
log.Printf("[DEBUG] Removing Gitlab Microsoft Teams service %s because project %s not found", d.Id(), p.Name)
130131
d.SetId("")
131132
return nil
132133
}
133-
return err
134+
return diag.FromErr(err)
134135
}
135136

136137
log.Printf("[DEBUG] Read Gitlab Microsoft Teams service for project %s", d.Id())
137138

138-
teamsService, _, err := client.Services.GetMicrosoftTeamsService(project)
139+
teamsService, _, err := client.Services.GetMicrosoftTeamsService(project, gitlab.WithContext(ctx))
139140
if err != nil {
140-
return err
141+
return diag.FromErr(err)
141142
}
142143

143144
d.Set("project", project)
@@ -160,16 +161,20 @@ func resourceGitlabServiceMicrosoftTeamsRead(d *schema.ResourceData, meta interf
160161
return nil
161162
}
162163

163-
func resourceGitlabServiceMicrosoftTeamsUpdate(d *schema.ResourceData, meta interface{}) error {
164-
return resourceGitlabServiceMicrosoftTeamsCreate(d, meta)
164+
func resourceGitlabServiceMicrosoftTeamsUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
165+
return resourceGitlabServiceMicrosoftTeamsCreate(ctx, d, meta)
165166
}
166167

167-
func resourceGitlabServiceMicrosoftTeamsDelete(d *schema.ResourceData, meta interface{}) error {
168+
func resourceGitlabServiceMicrosoftTeamsDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
168169
client := meta.(*gitlab.Client)
169170
project := d.Id()
170171

171172
log.Printf("[DEBUG] Delete Gitlab Microsoft Teams service for project %s", d.Id())
172173

173-
_, err := client.Services.DeleteMicrosoftTeamsService(project)
174-
return err
174+
_, err := client.Services.DeleteMicrosoftTeamsService(project, gitlab.WithContext(ctx))
175+
if err != nil {
176+
return diag.FromErr(err)
177+
}
178+
179+
return diag.FromErr(err)
175180
}

0 commit comments

Comments
 (0)