mirror of
https://github.com/pocket-id/pocket-id.git
synced 2025-12-06 09:13:19 +03:00
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package service
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/stonith404/pocket-id/backend/internal/utils/email"
|
|
"time"
|
|
)
|
|
|
|
/**
|
|
How to add new template:
|
|
- pick unique and descriptive template ${name} (for example "login-with-new-device")
|
|
- in backend/email-templates/ create "${name}_html.tmpl" and "${name}_text.tmpl"
|
|
- create xxxxTemplate and xxxxTemplateData (for example NewLoginTemplate and NewLoginTemplateData)
|
|
- Path *must* be ${name}
|
|
- add xxxTemplate.Path to "emailTemplatePaths" at the end
|
|
|
|
Notes:
|
|
- backend app must be restarted to reread all the template files
|
|
- root "." object in templates is `email.TemplateData`
|
|
- xxxxTemplateData structure is visible under .Data in templates
|
|
*/
|
|
|
|
var NewLoginTemplate = email.Template[NewLoginTemplateData]{
|
|
Path: "login-with-new-device",
|
|
Title: func(data *email.TemplateData[NewLoginTemplateData]) string {
|
|
return fmt.Sprintf("New device login with %s", data.AppName)
|
|
},
|
|
}
|
|
|
|
var TestTemplate = email.Template[struct{}]{
|
|
Path: "test",
|
|
Title: func(data *email.TemplateData[struct{}]) string {
|
|
return "Test email"
|
|
},
|
|
}
|
|
|
|
type NewLoginTemplateData struct {
|
|
IPAddress string
|
|
Country string
|
|
City string
|
|
Device string
|
|
DateTime time.Time
|
|
}
|
|
|
|
// this is list of all template paths used for preloading templates
|
|
var emailTemplatesPaths = []string{NewLoginTemplate.Path, TestTemplate.Path}
|