diff --git a/src/client/cmdUser/userDel.go b/src/client/cmdUser/userDel.go index 6ea96fa612289f6463589ff42cd3e13228a0517d..ec41cb4e85acafd04bf7583c084cb29b714eec91 100644 --- a/src/client/cmdUser/userDel.go +++ b/src/client/cmdUser/userDel.go @@ -2,10 +2,10 @@ package cmdUser import ( "encoding/csv" - "errors" "io" u "nexus-client/utils" g "nexus-libclient/globals" + libclient "nexus-libclient/user" "os" ) @@ -70,27 +70,27 @@ func (cmd *Del) Run(args []string) int { break } if err != nil { - u.PrintlnErr("FAILED reading " + err.Error()) + u.PrintlnErr("Failed reading " + err.Error()) statusCode = 1 continue } columnCount := len(columns) if columnCount != 1 { - u.PrintlnErr("FAILED reading record on line ", line, ": expecting 1 column") + u.PrintlnErr("Failed reading record on line ", line, ": expecting 1 column") statusCode = 1 continue } email := columns[0] if !u.IsEmail(email) { - u.PrintlnErr("FAILED reading record on line ", line, ": ", email, " is not a valid email") + u.PrintlnErr("Failed reading record on line ", line, ": ", email, " is not a valid email") statusCode = 1 continue } - if err := cmd.runRequest(email); err != nil { - u.PrintlnErr(err.Error()) + if err := libclient.UserDelete(email); err != nil { + u.PrintlnErr(err) statusCode = 1 } else { u.Println("Successfully deleted user " + email) @@ -102,7 +102,7 @@ func (cmd *Del) Run(args []string) int { // Iterates through each user (email) to delete for i := range args { email := args[i] - if err := cmd.runRequest(email); err != nil { + if err := libclient.UserDelete(email); err != nil { u.PrintlnErr(err.Error()) statusCode = 1 } else { @@ -113,19 +113,3 @@ func (cmd *Del) Run(args []string) int { return statusCode } - -func (cmd *Del) runRequest(email string) error { - client := g.GetInstance().Client - host := g.GetInstance().Host - - resp, err := client.R().Delete(host + "/users/" + email) - if err != nil { - return errors.New("Error: " + err.Error()) - } - - if resp.IsSuccess() { - return nil - } else { - return errors.New(resp.Status() + ": " + resp.String()) - } -} diff --git a/src/libclient/login/login.go b/src/libclient/login/login.go index c2fe465c403243cf598ec57e07e788af34b69d3c..76c82a89015710bc4fb04083b492016138bc1a11 100644 --- a/src/libclient/login/login.go +++ b/src/libclient/login/login.go @@ -2,9 +2,9 @@ package login import ( "encoding/json" - "errors" "nexus-common/params" g "nexus-libclient/globals" + "nexus-libclient/response" ) // Returns the token if the authentication was successful or an error if it wasn't. @@ -25,22 +25,14 @@ func GetToken(user, pwd string) (string, error) { type Response struct { Token string } - var response Response - err = json.Unmarshal(resp.Body(), &response) + var r Response + err = json.Unmarshal(resp.Body(), &r) if err != nil { return "", err } - return response.Token, nil + return r.Token, nil } else { - type Response struct { - Message string - } - var response Response - err = json.Unmarshal(resp.Body(), &response) - if err != nil { - return "", err - } - return "", errors.New(response.Message) + return "", response.ErrorToMsg(resp) } } @@ -64,7 +56,7 @@ func RefreshToken() (string, error) { } return response.Token, nil } else { - return "", errors.New(resp.Status() + ": " + resp.String()) + return "", response.ErrorToMsg(resp) } } } diff --git a/src/libclient/response/response.go b/src/libclient/response/response.go new file mode 100644 index 0000000000000000000000000000000000000000..d5ba47fd48c97ff208093a743f9a0d759f73b3d9 --- /dev/null +++ b/src/libclient/response/response.go @@ -0,0 +1,20 @@ +package response + +import ( + "encoding/json" + "errors" + + "github.com/go-resty/resty/v2" +) + +type Message struct { + Message string +} + +func ErrorToMsg(resp *resty.Response) error { + var msg Message + if err := json.Unmarshal(resp.Body(), &msg); err != nil { + return errors.New("Error: " + err.Error()) + } + return errors.New(msg.Message) +} diff --git a/src/libclient/template/templateCreate.go b/src/libclient/template/templateCreate.go index 1a9048c0be4dad703f7351a4f53e873fd40a45b8..1608d027edbcbb83b406abd19fcda5c2f065706a 100644 --- a/src/libclient/template/templateCreate.go +++ b/src/libclient/template/templateCreate.go @@ -2,10 +2,10 @@ package template import ( "encoding/json" - "errors" "nexus-common/params" "nexus-common/template" g "nexus-libclient/globals" + "nexus-libclient/response" "github.com/google/uuid" ) @@ -26,6 +26,6 @@ func TemplateCreate(vmID uuid.UUID, name, access string) (*template.TemplateSeri } return &tpl, nil } else { - return nil, errors.New(resp.Status() + ": " + resp.String()) + return nil, response.ErrorToMsg(resp) } } diff --git a/src/libclient/template/templateDel.go b/src/libclient/template/templateDel.go index 13460f35e6c0ba4aa9479871841d36743183f428..3150bef4905634eff60030f2bb13326aa0a4e590 100644 --- a/src/libclient/template/templateDel.go +++ b/src/libclient/template/templateDel.go @@ -1,8 +1,8 @@ package template import ( - "errors" g "nexus-libclient/globals" + "nexus-libclient/response" ) func TemplateDel(tplID string) error { @@ -16,6 +16,6 @@ func TemplateDel(tplID string) error { if resp.IsSuccess() { return nil } else { - return errors.New(resp.Status() + ": " + resp.String()) + return response.ErrorToMsg(resp) } } diff --git a/src/libclient/template/templateEdit.go b/src/libclient/template/templateEdit.go index 3fe5988db8a473e68c14410d1ddb7b4039083ee2..625979bb699534ea42887f695d4a9beeaa9edbe5 100644 --- a/src/libclient/template/templateEdit.go +++ b/src/libclient/template/templateEdit.go @@ -2,10 +2,10 @@ package template import ( "encoding/json" - "errors" "nexus-common/params" "nexus-common/template" g "nexus-libclient/globals" + "nexus-libclient/response" ) func TemplateEdit(tplID string, p params.TplEdit) (*template.TemplateSerialized, error) { @@ -23,6 +23,6 @@ func TemplateEdit(tplID string, p params.TplEdit) (*template.TemplateSerialized, } return &tpl, nil } else { - return nil, errors.New(resp.Status() + ": " + resp.String()) + return nil, response.ErrorToMsg(resp) } } diff --git a/src/libclient/template/templateExportDisk.go b/src/libclient/template/templateExportDisk.go index 31a0f7b6eb4cc09805803f98e8705b04a35c945d..0c418f51ce035200c709f88d4a835008fd28d71d 100644 --- a/src/libclient/template/templateExportDisk.go +++ b/src/libclient/template/templateExportDisk.go @@ -4,6 +4,7 @@ import ( "errors" u "nexus-client/utils" g "nexus-libclient/globals" + "nexus-libclient/response" ) func TemplateExportDisk(tplID, outputFile string) error { @@ -18,7 +19,7 @@ func TemplateExportDisk(tplID, outputFile string) error { return nil } else { errorMsg, _ := u.FileToString(outputFile) - return errors.New("Failed: " + resp.Status() + ": " + errorMsg) + return errors.New(response.ErrorToMsg(resp).Error() + ": " + errorMsg) } } } diff --git a/src/libclient/template/templateList.go b/src/libclient/template/templateList.go index 6748afee6fc9358d93aab22deb9f34686e59c49c..01b0d1789aec9747e1be57f1d24d95b5980b6f11 100644 --- a/src/libclient/template/templateList.go +++ b/src/libclient/template/templateList.go @@ -1,9 +1,9 @@ package template import ( - "errors" t "nexus-common/template" g "nexus-libclient/globals" + "nexus-libclient/response" ) func GetTemplates() ([]t.TemplateSerialized, error) { @@ -22,7 +22,7 @@ func GetTemplates() ([]t.TemplateSerialized, error) { } return templates, nil } else { - return nil, errors.New(resp.Status() + ": " + resp.String()) + return nil, response.ErrorToMsg(resp) } } @@ -42,6 +42,6 @@ func GetTemplate(uuid string) (*t.TemplateSerialized, error) { } return template, nil } else { - return nil, errors.New(resp.Status() + ": " + resp.String()) + return nil, response.ErrorToMsg(resp) } } diff --git a/src/libclient/user/userCreate.go b/src/libclient/user/userCreate.go index d5a770a7a9b31efcc6f4e99dbe856f15c34f96ee..c0aba07a040c4eafc3953aff05f5be8159720fe8 100644 --- a/src/libclient/user/userCreate.go +++ b/src/libclient/user/userCreate.go @@ -1,9 +1,9 @@ package template import ( - "errors" "nexus-common/params" g "nexus-libclient/globals" + "nexus-libclient/response" ) func UserCreate(p params.UserWithPwd) error { @@ -17,6 +17,6 @@ func UserCreate(p params.UserWithPwd) error { if resp.IsSuccess() { return nil } else { - return errors.New(resp.Status() + ": " + resp.String()) + return response.ErrorToMsg(resp) } } diff --git a/src/libclient/user/userDel.go b/src/libclient/user/userDel.go new file mode 100644 index 0000000000000000000000000000000000000000..776ec3a9ce812447e391217686bd1dbf8e452f6d --- /dev/null +++ b/src/libclient/user/userDel.go @@ -0,0 +1,21 @@ +package template + +import ( + g "nexus-libclient/globals" + "nexus-libclient/response" +) + +func UserDelete(email string) error { + client := g.GetInstance().Client + host := g.GetInstance().Host + + resp, err := client.R().Delete(host + "/users/" + email) + if err != nil { + return err + } + if resp.IsSuccess() { + return nil + } else { + return response.ErrorToMsg(resp) + } +}