Adds id and options string flags

This commit is contained in:
Daniel Svitan 2025-04-11 22:40:39 +02:00
parent f64f02cfd9
commit e9065fb654

View File

@ -54,13 +54,37 @@ func main() {
},
},
{
Name: "clients",
Usage: "fetch all clients",
Name: "clients",
Usage: "fetch all clients",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "id",
Usage: "optional id of a client to fetch",
},
},
Action: clients,
},
{
Name: "logs",
Usage: "fetch all/specific logs",
Name: "logs",
Usage: "fetch all/specific logs",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "id",
Usage: "optional id of a client to log",
},
&cli.StringFlag{
Name: "date",
Usage: "optional date of the log, id required, in ISO8601 date format",
},
&cli.StringFlag{
Name: "skip",
Usage: "optional skip bytes in log file",
},
&cli.StringFlag{
Name: "take",
Usage: "optional take bytes from log file",
},
},
Action: logs,
},
},
@ -72,13 +96,20 @@ func main() {
}
}
func clients(context.Context, *cli.Command) error {
func clients(ctx context.Context, cmd *cli.Command) error {
err := load()
if err != nil {
return err
}
url := fmt.Sprintf("%s/admin/clients", server)
var url string
id := cmd.String("id")
if id != "" {
url = fmt.Sprintf("%s/admin/clients/%s", server, id)
} else {
url = fmt.Sprintf("%s/admin/clients", server)
}
req, err := http.NewRequest(http.MethodGet, url, nil)
if err != nil {
return err
@ -100,13 +131,38 @@ func clients(context.Context, *cli.Command) error {
return nil
}
func logs(context.Context, *cli.Command) error {
func logs(ctx context.Context, cmd *cli.Command) error {
err := load()
if err != nil {
return err
}
url := fmt.Sprintf("%s/admin/logs", server)
var url string
id := cmd.String("id")
if id != "" {
params := map[string]string{
"date": cmd.String("date"),
"skip": cmd.String("skip"),
"take": cmd.String("take"),
}
paramsStr := ""
for k, v := range params {
if v == "" {
continue
}
if paramsStr == "" {
paramsStr = fmt.Sprintf("?%s=%s", k, v)
} else {
paramsStr += fmt.Sprintf("&%s=%s", k, v)
}
}
url = fmt.Sprintf("%s/admin/%s/logs%s", server, id, paramsStr)
} else {
url = fmt.Sprintf("%s/admin/logs", server)
}
req, err := http.NewRequest(http.MethodGet, url, nil)
if err != nil {
return err