Skip to content
Snippets Groups Projects
Commit f8125417 authored by Florent Gluck's avatar Florent Gluck
Browse files

libclient: implemented userList

parent 8bec6c46
No related branches found
No related tags found
No related merge requests found
......@@ -43,13 +43,9 @@ Regex examples:
u.PrintlnErr(usage)
}
func (cmd *List) Run(args []string) int {
return cmd.printFilteredTemplates(args, "/templates")
}
// Prints a list of filtered templates for a given route.
// Prints a list of filtered templates.
// Return 0 if everything went well or 1 in case of failure.
func (cmd *List) printFilteredTemplates(args []string, route string) int {
func (cmd *List) Run(args []string) int {
if len(args) < 1 {
cmd.PrintUsage()
return 1
......@@ -67,7 +63,7 @@ func (cmd *List) printFilteredTemplates(args []string, route string) int {
args = u.RemoveArgAtIndex(args, foundLongOutputFlag)
}
templates, err := cmd.getFilteredTemplates(route, args)
templates, err := cmd.getFilteredTemplates(args)
if err != nil {
u.PrintlnErr(err)
return 1
......@@ -121,7 +117,7 @@ func (cmd *List) printFilteredTemplates(args []string, route string) int {
//
// "." -> matches everything
// "bla" -> matches any template name containing "bla"
func (cmd *List) getFilteredTemplates(route string, patterns []string) ([]t.TemplateSerialized, error) {
func (cmd *List) getFilteredTemplates(patterns []string) ([]t.TemplateSerialized, error) {
if len(patterns) < 1 {
return nil, errors.New("At least one ID or regex must be specified")
}
......
......@@ -4,7 +4,7 @@ import (
"fmt"
u "nexus-client/utils"
"nexus-common/params"
g "nexus-libclient/globals"
libclient "nexus-libclient/user"
"regexp"
"strings"
)
......@@ -34,10 +34,6 @@ func (cmd *List) PrintUsage() {
printRegexUsageDetails()
}
func (cmd *List) Run(args []string) int {
return cmd.printFilteredUsers(args, "/users")
}
// Prints a list of filtered users for a given route.
// The filter is based on regexes.
// Remark: the regex matches the user email, first name and last name and is case-insensitive.
......@@ -46,7 +42,7 @@ func (cmd *List) Run(args []string) int {
// "" -> matches everything
// "." -> matches everything
// "bla" -> matches any user containing "bla"
func (cmd *List) printFilteredUsers(args []string, route string) int {
func (cmd *List) Run(args []string) int {
if len(args) < 1 {
cmd.PrintUsage()
return 1
......@@ -64,19 +60,9 @@ func (cmd *List) printFilteredUsers(args []string, route string) int {
args = u.RemoveArgAtIndex(args, foundLongOutputFlag)
}
client := g.GetInstance().Client
host := g.GetInstance().Host
resp, err := client.R().Get(host + route)
if err != nil {
u.PrintlnErr("Error: " + err.Error())
return 1
}
if resp.IsSuccess() {
users, err := deserializeUsers(resp)
users, err := libclient.GetUsers()
if err != nil {
u.PrintlnErr("Error: " + err.Error())
u.PrintlnErr(err)
return 1
}
......@@ -134,8 +120,4 @@ func (cmd *List) printFilteredUsers(args []string, route string) int {
}
return 0
} else {
u.PrintlnErr(resp.Status() + ": " + resp.String())
return 1
}
}
package user
import (
"encoding/json"
"nexus-common/params"
"github.com/go-resty/resty/v2"
)
// Deserialize a list of users from an http response (no filtering).
func deserializeUsers(resp *resty.Response) ([]params.UserWithoutPwd, error) {
users := []params.UserWithoutPwd{}
if err := json.Unmarshal(resp.Body(), &users); err != nil {
return nil, err
}
return users, nil
}
// Deserialize a single user from an http response.
func deserializeUser(resp *resty.Response) (*params.UserWithoutPwd, error) {
var user *params.UserWithoutPwd = &params.UserWithoutPwd{}
if err := json.Unmarshal(resp.Body(), &user); err != nil {
return user, err
}
return user, nil
}
package template
package user
import (
"nexus-common/params"
......
package template
package user
import (
g "nexus-libclient/globals"
......
package user
import (
"nexus-common/params"
g "nexus-libclient/globals"
"nexus-libclient/response"
)
func GetUsers() ([]params.UserWithoutPwd, error) {
client := g.GetInstance().Client
host := g.GetInstance().Host
resp, err := client.R().Get(host + "/users")
if err != nil {
return nil, err
}
if resp.IsSuccess() {
templates, err := deserializeUsers(resp)
if err != nil {
return nil, err
}
return templates, nil
} else {
return nil, response.ErrorToMsg(resp)
}
}
// NOTE: this route is not implemented in the backend yet.
func GetUser(email string) (*params.UserWithoutPwd, error) {
client := g.GetInstance().Client
host := g.GetInstance().Host
resp, err := client.R().Get(host + "/users/" + email)
if err != nil {
return nil, err
}
if resp.IsSuccess() {
template, err := deserializeUser(resp)
if err != nil {
return nil, err
}
return template, nil
} else {
return nil, response.ErrorToMsg(resp)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment