package model import ( "fmt" "os" "text/tabwriter" ) func (c *Campaign) PrintUserReport() { userTickets := map[string]int{} for _, ticket := range c.Tickets { if !ticket.IsClosed() { continue } user := ticket.GithubAssignee if user != "" { if count, ok := userTickets[user]; ok { userTickets[user] = count+1 } else { userTickets[user] = 1 } } } fmt.Println() w := tabwriter.NewWriter(os.Stdout, 0, 0, 3, ' ', tabwriter.AlignRight) fmt.Fprintln(w, "GitHub username\tTickets closed\t") fmt.Fprintln(w, "---------------\t--------------\t") for user, count := range userTickets { fmt.Fprintf(w, "%s\t%d\t\n", user, count) } w.Flush() fmt.Println() }