1package mappers
2
3import (
4	"fmt"
5	c "repodiff/constants"
6	e "repodiff/entities"
7)
8
9func CommitCSVHeader() []string {
10	return []string{
11		"Date",
12		"Commit",
13		"Downstream Project",
14		"Author",
15		"Subject",
16		"Project Type",
17	}
18}
19
20func CommitEntityToCSVRow(a e.AnalyzedCommitRow) []string {
21	return quoteAll(
22		[]string{
23			a.Date,
24			a.Commit,
25			a.DownstreamProject,
26			a.Author,
27			a.Subject,
28			c.ProjectTypeToDisplay[a.Type],
29		},
30	)
31}
32
33func CommitEntitiesToCSVRows(commits []e.AnalyzedCommitRow) [][]string {
34	rowsOfCols := make([][]string, len(commits))
35	for i, commit := range commits {
36		cols := CommitEntityToCSVRow(commit)
37		rowsOfCols[i] = cols
38	}
39	return rowsOfCols
40}
41
42func quoteAll(s []string) []string {
43	copied := make([]string, len(s))
44	for i, val := range s {
45		copied[i] = fmt.Sprintf("%q", val)
46	}
47	return copied
48}
49