refactor: clean up NodeService interface; move all integrity logic behind it
This commit is contained in:
32
cmd/list.go
32
cmd/list.go
@@ -10,6 +10,7 @@ import (
|
||||
)
|
||||
|
||||
var lTags, lRels []string
|
||||
var lStatus, lPrio, lType, lNamespace, lAssignee, lMention string
|
||||
|
||||
var listCmd = &cobra.Command{
|
||||
Use: "list", Short: "List nodes",
|
||||
@@ -20,21 +21,26 @@ var listCmd = &cobra.Command{
|
||||
return
|
||||
}
|
||||
|
||||
opts := []service.ListOption{}
|
||||
if len(lTags) > 0 {
|
||||
opts = append(opts, service.WithTags(lTags...))
|
||||
filter := service.ListFilter{
|
||||
Tags: lTags,
|
||||
Status: lStatus,
|
||||
Priority: lPrio,
|
||||
Type: lType,
|
||||
Namespace: lNamespace,
|
||||
Assignee: lAssignee,
|
||||
Mention: lMention,
|
||||
}
|
||||
|
||||
for _, relStr := range lRels {
|
||||
rel, err := parseRelFlag(svc, relStr)
|
||||
for _, r := range lRels {
|
||||
ri, err := parseRelInput(r)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "failed to parse relation flag: %v", err)
|
||||
return
|
||||
}
|
||||
opts = append(opts, service.WithRels(rel))
|
||||
filter.Rels = append(filter.Rels, ri)
|
||||
}
|
||||
|
||||
if nodes, err := svc.List(opts...); err == nil {
|
||||
if nodes, err := svc.List(filter); err == nil {
|
||||
output.PrintNodes(cmd.OutOrStdout(), svc, nodes, jsonFlag)
|
||||
} else {
|
||||
fmt.Fprintf(os.Stderr, "err: %v\n", err)
|
||||
@@ -44,9 +50,13 @@ var listCmd = &cobra.Command{
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(listCmd)
|
||||
addPropertyFlags(listCmd)
|
||||
f := listCmd.Flags()
|
||||
//TODO: assignee/ mention flags?
|
||||
f.StringArrayVar(&lTags, "tag", nil, "")
|
||||
f.StringArrayVar(&lRels, "rel", nil, "")
|
||||
f.StringArrayVar(&lTags, "tag", nil, "filter by tag")
|
||||
f.StringArrayVar(&lRels, "rel", nil, "filter by relation (type:target)")
|
||||
f.StringVar(&lStatus, "status", "", "filter by status")
|
||||
f.StringVar(&lPrio, "prio", "", "filter by priority")
|
||||
f.StringVar(&lType, "type", "", "filter by type")
|
||||
f.StringVar(&lNamespace, "namespace", "", "filter by namespace")
|
||||
f.StringVar(&lAssignee, "assignee", "", "filter by assignee")
|
||||
f.StringVar(&lMention, "mention", "", "filter by mention")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user