11package bitbucket
22
33import (
4+ "context"
45 "encoding/json"
5- "fmt"
66 "io"
77 "log"
88 "net/http"
99
10+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1011 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1112)
1213
@@ -25,7 +26,7 @@ type UserEmail struct {
2526
2627func dataCurrentUser () * schema.Resource {
2728 return & schema.Resource {
28- Read : dataReadCurrentUser ,
29+ ReadWithoutTimeout : dataReadCurrentUser ,
2930
3031 Schema : map [string ]* schema.Schema {
3132 "username" : {
@@ -64,34 +65,34 @@ func dataCurrentUser() *schema.Resource {
6465 }
6566}
6667
67- func dataReadCurrentUser (d * schema.ResourceData , m interface {}) error {
68+ func dataReadCurrentUser (ctx context. Context , d * schema.ResourceData , m interface {}) diag. Diagnostics {
6869 c := m .(Clients ).genClient
6970 httpClient := m .(Clients ).httpClient
7071 usersApi := c .ApiClient .UsersApi
7172
7273 curUser , curUserRes , err := usersApi .UserGet (c .AuthContext )
7374 if err != nil {
74- return fmt .Errorf ("error reading current user: %w " , err )
75+ return diag .Errorf ("error reading current user: %s " , err )
7576 }
7677
7778 if curUserRes .StatusCode == http .StatusNotFound {
78- return fmt .Errorf ("user not found" )
79+ return diag .Errorf ("user not found" )
7980 }
8081
8182 if curUserRes .StatusCode >= http .StatusInternalServerError {
82- return fmt .Errorf ("internal server error fetching user" )
83+ return diag .Errorf ("internal server error fetching user" )
8384 }
8485
8586 log .Printf ("[DEBUG] Current User: %#v" , curUser )
8687
8788 curUserEmails , err := httpClient .Get ("2.0/user/emails" )
8889 if err != nil {
89- return err
90+ return diag . FromErr ( err )
9091 }
9192
9293 emailBody , readerr := io .ReadAll (curUserEmails .Body )
9394 if readerr != nil {
94- return readerr
95+ return diag . FromErr ( readerr )
9596 }
9697
9798 log .Printf ("[DEBUG] Current User Emails Response JSON: %v" , string (emailBody ))
@@ -100,7 +101,7 @@ func dataReadCurrentUser(d *schema.ResourceData, m interface{}) error {
100101
101102 decodeerr := json .Unmarshal (emailBody , & emails )
102103 if decodeerr != nil {
103- return decodeerr
104+ return diag . FromErr ( decodeerr )
104105 }
105106
106107 log .Printf ("[DEBUG] Current User Emails Response Decoded: %#v" , emails )
0 commit comments