Select Git revision

Florent Gluck authored
userAdd.go 1.22 KiB
package cmdUser
import (
u "nexus-client/utils"
g "nexus-client/globals"
)
type Add struct {
Name string
}
func (cmd *Add)GetName() string {
return cmd.Name
}
func (cmd *Add)GetDesc() []string {
return []string{
"Adds a user.",
"Requires USER_CREATE user capability."}
}
func (cmd *Add)PrintUsage() {
for _, desc := range cmd.GetDesc() {
u.PrintlnErr(desc)
}
u.PrintlnErr("USAGE: "+cmd.Name+" email firstname lastname password [capability ...]")
}
func (cmd *Add)Run(args []string) int {
client := g.GetInstance().Client
host := g.GetInstance().Host
argc := len(args)
if argc < 4 {
cmd.PrintUsage()
return 1
}
type UserArgs struct {
Email string
FirstName string
LastName string
Pwd string
Caps map[string]int
}
userArgs := &UserArgs {
Email: args[0],
FirstName: args[1],
LastName: args[2],
Pwd: args[3],
Caps: make(map[string]int),
}
if argc > 4 {
for _, cap := range args[4:] {
userArgs.Caps[cap] = 1
}
}
resp, err := client.R().SetBody(userArgs).Post(host+"/users")
if err != nil {
u.PrintlnErr("Error: "+err.Error())
return 1
}
if resp.IsSuccess() {
u.Println(resp)
return 0
} else {
u.PrintlnErr("Error: "+resp.Status()+": "+resp.String())
return 1
}
}