Skip to content

Commit

Permalink
Fix(response): return response also in case of error
Browse files Browse the repository at this point in the history
In the previous release, I introduced the response as a return value
on various function calls. In case of error, the response was nil
which leads to a nil pointer exception in other code.

This commit ensures that the response object is always returned.
  • Loading branch information
till committed Oct 1, 2024
1 parent 8b2da20 commit 057324c
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 9 deletions.
8 changes: 5 additions & 3 deletions internal/cmd/users.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,11 @@ func ShowUser(cCtx *cli.Context) error {

email := cCtx.String("email")

user, _, err := client.GetUser(email)
user, resp, err := client.GetUser(email)
if err != nil {
return err
if resp.StatusCode() == 404 {
return fmt.Errorf("no user with email %q found", email)
}
}

fmt.Printf("ID: %s\n", user.ID)
Expand Down Expand Up @@ -112,7 +114,7 @@ func CreateKey(cCtx *cli.Context) error {

email := cCtx.String("email")

_, err := client.GenerateCredentials(email)
_, _, err := client.GenerateCredentials(email)
if err != nil {
return err
}
Expand Down
6 changes: 3 additions & 3 deletions pkg/ostor/key.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ package ostor

import "github.com/go-resty/resty/v2"

func (o *Ostor) GenerateCredentials(email string) (*OstorCreateUserResponse, error) {
func (o *Ostor) GenerateCredentials(email string) (*OstorCreateUserResponse, *resty.Response, error) {
var user *OstorCreateUserResponse
_, err := o.post(qUsers, qUsers+"&emailAddress="+email+"&genKey", user)
return user, err
resp, err := o.post(qUsers, qUsers+"&emailAddress="+email+"&genKey", user)
return user, resp, err
}

func (o *Ostor) RevokeKey(email, accessKeyID string) (*resty.Response, error) {
Expand Down
6 changes: 3 additions & 3 deletions pkg/ostor/ostor.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,16 +103,16 @@ func (o *Ostor) request(req *resty.Request, cmd, method, url string) (*resty.Res
// fmt.Printf("%v", res.Request)
// b, _ := io.ReadAll(res.RawBody())
// fmt.Println(b)
return nil, fmt.Errorf("request failed: %s", err)
return res, fmt.Errorf("request failed: %s", err)
}

if res.IsError() {
headers := res.Header()
if headers.Get("X-Amz-Err-Message") != "" {
return nil, fmt.Errorf("request failed: %s", headers.Get("X-Amz-Err-Message"))
return res, fmt.Errorf("request failed: %s", headers.Get("X-Amz-Err-Message"))
}

return nil, fmt.Errorf("unable to make request: %d", res.StatusCode())
return res, fmt.Errorf("unable to make request: %d", res.StatusCode())
}

return res, nil
Expand Down

0 comments on commit 057324c

Please sign in to comment.