(result map[string]interface{})
| 793 | } |
| 794 | |
| 795 | func renderErrorGroupsTable(result map[string]interface{}) { |
| 796 | data, ok := result["data"].([]interface{}) |
| 797 | if !ok || len(data) == 0 { |
| 798 | fmt.Println("No error groups found") |
| 799 | return |
| 800 | } |
| 801 | |
| 802 | table := &UITable{ |
| 803 | Headers: []string{"MESSAGE", "TYPE", "COUNT", "FIRST SEEN", "LAST SEEN"}, |
| 804 | } |
| 805 | |
| 806 | for _, item := range data { |
| 807 | row, ok := item.(map[string]interface{}) |
| 808 | if !ok { |
| 809 | continue |
| 810 | } |
| 811 | msg := formatSiteValue(row["message"]) |
| 812 | if len(msg) > 50 { |
| 813 | msg = msg[:47] + "..." |
| 814 | } |
| 815 | table.Rows = append(table.Rows, []string{ |
| 816 | msg, |
| 817 | formatSiteValue(row["error_type"]), |
| 818 | formatSiteValue(row["count"]), |
| 819 | formatSiteValue(row["first_seen"]), |
| 820 | formatSiteValue(row["last_seen"]), |
| 821 | }) |
| 822 | } |
| 823 | |
| 824 | siteOutputToTarget(table.Render()) |
| 825 | } |
| 826 | |
| 827 | func formatSiteValue(v interface{}) string { |
| 828 | if v == nil { |
no test coverage detected