@@ -20,6 +20,7 @@ package buckets
2020import (
2121 "context"
2222 "encoding/json"
23+ "errors"
2324 "os"
2425 "strconv"
2526 "strings"
@@ -78,11 +79,13 @@ func (me *service) get(ctx context.Context, id string, v *buckets.Bucket) (err e
7879 }
7980 var result bucket.Response
8081 if result , err = client .Get (ctx , id ); err != nil {
82+ apiErr := coreapi.APIError {}
83+ if errors .As (err , & apiErr ) {
84+ return rest .Envelope (apiErr .Body , me .credentials .OAuth .EnvironmentURL , "GET" )
85+ }
8186 return err
8287 }
83- if ! result .IsSuccess () {
84- return rest .Envelope (result .Data , me .credentials .OAuth .EnvironmentURL , "GET" )
85- }
88+
8689 return json .Unmarshal (result .Data , & v )
8790}
8891
@@ -149,13 +152,14 @@ func (me *service) Create(ctx context.Context, v *buckets.Bucket) (stub *api.Stu
149152 if data , err = json .Marshal (v ); err != nil {
150153 return nil , err
151154 }
152- var response bucket.Response
153- if response , err = client .Create (ctx , v .Name , data ); err != nil {
155+
156+ if _ , err = client .Create (ctx , v .Name , data ); err != nil {
157+ apiErr := coreapi.APIError {}
158+ if errors .As (err , & apiErr ) {
159+ return nil , rest .Envelope (apiErr .Body , me .credentials .OAuth .EnvironmentURL , "POST" )
160+ }
154161 return nil , err
155162 }
156- if ! response .IsSuccess () {
157- return nil , rest .Envelope (response .Data , me .credentials .OAuth .EnvironmentURL , "POST" )
158- }
159163
160164 maxConfirmationRetries := getEnv ("DT_BUCKETS_RETRIES" , DefaultMaxConfirmationRetries , MinMaxConfirmationRetries , MaxMaxConfirmationRetries )
161165 numRequiredSuccesses := getEnv ("DT_BUCKETS_NUM_SUCCESSES" , DefaultNumRequiredSuccesses , MinNumRequiredSuccesses , MaxNumRequiredSuccesses )
@@ -199,14 +203,16 @@ func (me *service) Update(ctx context.Context, id string, v *buckets.Bucket) (er
199203 if data , err = json .Marshal (v ); err != nil {
200204 return err
201205 }
202- var response bucket. Response
203- response , err = client .Update (ctx , id , data )
206+
207+ _ , err = client .Update (ctx , id , data )
204208 if err != nil {
209+ apiErr := coreapi.APIError {}
210+ if errors .As (err , & apiErr ) {
211+ return rest .Envelope (apiErr .Body , me .credentials .OAuth .EnvironmentURL , "PUT" )
212+ }
205213 return err
206214 }
207- if ! response .IsSuccess () {
208- return rest .Envelope (response .Data , me .credentials .OAuth .EnvironmentURL , "PUT" )
209- }
215+
210216 maxConfirmationRetries := getEnv ("DT_BUCKETS_RETRIES" , DefaultMaxConfirmationRetries , MinMaxConfirmationRetries , MaxMaxConfirmationRetries )
211217 retries := 0
212218 for {
0 commit comments