diff options
Diffstat (limited to 'cmd/generate/src_contribs.go')
-rw-r--r-- | cmd/generate/src_contribs.go | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/cmd/generate/src_contribs.go b/cmd/generate/src_contribs.go index b47cf89..760b56a 100644 --- a/cmd/generate/src_contribs.go +++ b/cmd/generate/src_contribs.go @@ -20,7 +20,8 @@ type Contribution struct { SubmittedAt time.Time `json:"submitted-at"` LastUpdatedAt time.Time `json:"last-updated-at"` Status string `json:"status"` - StatusClass string `json:"-"` + + StatusClass string `json:"-"` } func ReadContribs(filename string) ([]Contribution, error) { @@ -62,19 +63,26 @@ func (c *Contribution) Fill() error { return err } } + c.StatusClass, err = classifyStatus(c.Status) + if err != nil { + return err + } + return nil +} + +func classifyStatus(status string) (string, error) { switch { - case strings.Contains(c.Status, "released") || strings.Contains(c.Status, "deployed"): - c.StatusClass = "released" - case strings.Contains(c.Status, "merged"): - c.StatusClass = "merged" - case strings.Contains(c.Status, "open"): - c.StatusClass = "open" - case strings.Contains(c.Status, "closed") || strings.Contains(c.Status, "locked"): - c.StatusClass = "closed" + case strings.Contains(status, "released") || strings.Contains(status, "deployed"): + return "released", nil + case strings.Contains(status, "merged"): + return "merged", nil + case strings.Contains(status, "open"): + return "open", nil + case strings.Contains(status, "closed") || strings.Contains(status, "locked"): + return "closed", nil default: - return fmt.Errorf("unrecognized status string: %q", c.Status) + return "", fmt.Errorf("unrecognized status string: %q", status) } - return nil } var ( |