func printInvestigatorLastActions(iid float64, limit int, cli client.Client) (err error) { defer func() { if e := recover(); e != nil { err = fmt.Errorf("printInvestigatorLastActions() -> %v", e) } }() target := fmt.Sprintf("search?type=action&investigatorid=%.0f&limit=%d", iid, limit) resource, err := cli.GetAPIResource(target) if err != nil { panic(err) } fmt.Printf("------- ID ------- + -------- Action Name ------- + ----------- Target ---------- + ---- Date ---- + -- Status --\n") for _, item := range resource.Collection.Items { for _, data := range item.Data { if data.Name != "action" { continue } a, err := client.ValueToAction(data.Value) if err != nil { panic(err) } name := a.Name if len(name) < 30 { for i := len(name); i < 30; i++ { name += " " } } if len(name) > 30 { name = name[0:27] + "..." } target := a.Target if len(target) < 30 { for i := len(target); i < 30; i++ { target += " " } } if len(target) > 30 { target = target[0:27] + "..." } fmt.Printf("%.0f %s %s %s %s\n", a.ID, name, target, a.StartTime.Format(time.RFC3339), a.Status) } } return }
func actionPrintShort(data interface{}) (idstr, name, datestr, invs string, sent int, err error) { defer func() { if e := recover(); e != nil { err = fmt.Errorf("actionPrintShort() -> %v", e) } }() a, err := client.ValueToAction(data) if err != nil { panic(err) } invs = investigatorsStringFromAction(a.Investigators, 23) idstr = fmt.Sprintf("%.0f", a.ID) if len(idstr) < 20 { for i := len(idstr); i < 20; i++ { idstr += " " } } name = a.Name if len(name) < 30 { for i := len(name); i < 30; i++ { name += " " } } if len(name) > 30 { name = name[0:27] + "..." } datestr = a.LastUpdateTime.Format("Mon Jan 2 3:04pm MST") if len(datestr) > 21 { datestr = datestr[0:21] } if len(datestr) < 20 { for i := len(datestr); i < 20; i++ { datestr += " " } } sent = a.Counters.Sent return }