diff --git a/internal/cmd/users.go b/internal/cmd/users.go index 610ae1f..e53b8a7 100644 --- a/internal/cmd/users.go +++ b/internal/cmd/users.go @@ -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) @@ -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 } diff --git a/pkg/ostor/key.go b/pkg/ostor/key.go index 11d94fe..78e2efc 100644 --- a/pkg/ostor/key.go +++ b/pkg/ostor/key.go @@ -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) { diff --git a/pkg/ostor/ostor.go b/pkg/ostor/ostor.go index dbef49f..8ea9f33 100644 --- a/pkg/ostor/ostor.go +++ b/pkg/ostor/ostor.go @@ -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