Skip to content

Commit

Permalink
Refactor and move FirstName LastName functions to the Subscriber model
Browse files Browse the repository at this point in the history
  • Loading branch information
knadh committed Nov 2, 2018
1 parent ae2ca2c commit 09b7fc8
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 22 deletions.
29 changes: 29 additions & 0 deletions models/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"fmt"
"html/template"
"regexp"
"strings"

"github.com/jmoiron/sqlx"
"github.com/jmoiron/sqlx/types"
Expand Down Expand Up @@ -233,3 +234,31 @@ func (c *Campaign) CompileTemplate(f template.FuncMap) error {
c.Tpl = out
return nil
}

// FirstName splits the name by spaces and returns the first chunk
// of the name that's greater than 2 characters in length, assuming
// that it is the subscriber's first name.
func (s *Subscriber) FirstName() string {
for _, s := range strings.Split(s.Name, " ") {
if len(s) > 2 {
return s
}
}

return s.Name
}

// LastName splits the name by spaces and returns the last chunk
// of the name that's greater than 2 characters in length, assuming
// that it is the subscriber's last name.
func (s *Subscriber) LastName() string {
chunks := strings.Split(s.Name, " ")
for i := len(chunks) - 1; i >= 0; i-- {
chunk := chunks[i]
if len(chunk) > 2 {
return chunk
}
}

return s.Name
}
21 changes: 0 additions & 21 deletions runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"fmt"
"html/template"
"log"
"strings"
"sync"
"time"

Expand Down Expand Up @@ -327,26 +326,6 @@ func (r *Runner) TemplateFuncs(c *models.Campaign) template.FuncMap {
return template.HTML(fmt.Sprintf(`<img src="%s" alt="campaign" />`,
fmt.Sprintf(r.cfg.ViewTrackURL, campUUID, subUUID)))
},
"FirstName": func(name string) string {
for _, s := range strings.Split(name, " ") {
if len(s) > 2 {
return s
}
}

return name
},
"LastName": func(name string) string {
s := strings.Split(name, " ")
for i := len(s) - 1; i >= 0; i-- {
chunk := s[i]
if len(chunk) > 2 {
return chunk
}
}

return name
},
"Date": func(layout string) string {
if layout == "" {
layout = time.ANSIC
Expand Down
1 change: 0 additions & 1 deletion todo
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
- Add quote support to Quill link feature so that Track function can be inserted
- Make {{ template }} a Regex check to account for spaces
- Clicking on "all subscribers" from a list subscriber view doesn't do anything
- Add css inliner
- Duplicate mails to subscribers in multiple lists under one campaign?

Expand Down

0 comments on commit 09b7fc8

Please sign in to comment.