package email
import "strings"
// mail related images hosted on github
var (
netmakerLogoTeal = "https://raw.githubusercontent.com/gravitl/netmaker/netmaker_logos/img/logos/netmaker-logo-2.png"
)
type EmailBodyBuilder interface {
WithHeadline(text string) EmailBodyBuilder
WithParagraph(text string) EmailBodyBuilder
WithHtml(text string) EmailBodyBuilder
WithSignature() EmailBodyBuilder
Build() string
}
type EmailBodyBuilderWithH1HeadlineAndImage struct {
headline string
bodyContent []string
hasSignature bool
}
func (b *EmailBodyBuilderWithH1HeadlineAndImage) WithHeadline(text string) EmailBodyBuilder {
b.headline = text
return b
}
func (b *EmailBodyBuilderWithH1HeadlineAndImage) WithParagraph(text string) EmailBodyBuilder {
b.bodyContent = append(b.bodyContent, styledParagraph(text))
return b
}
func (b *EmailBodyBuilderWithH1HeadlineAndImage) WithHtml(text string) EmailBodyBuilder {
b.bodyContent = append(b.bodyContent, text)
return b
}
func (b *EmailBodyBuilderWithH1HeadlineAndImage) WithSignature() EmailBodyBuilder {
b.hasSignature = true
return b
}
func (b *EmailBodyBuilderWithH1HeadlineAndImage) Build() string {
bodyContent := strings.Join(b.bodyContent, "")
// TODO: Edit design to add signature.
//signature := ""
//if b.hasSignature {
// signature = styledSignature()
//}
return `
Simple Transactional Email
|
` + bodyContent + `
|
|
|
`
}
func styledParagraph(text string) string {
return `` + text + `
`
}