52 lines
1002 B
Go
52 lines
1002 B
Go
package events
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/kirsle/blog/internal/mail"
|
|
"github.com/kirsle/blog/models/events"
|
|
"github.com/kirsle/blog/models/settings"
|
|
)
|
|
|
|
func notifyUser(ev *events.Event, rsvp events.RSVP) {
|
|
var (
|
|
email = rsvp.GetEmail()
|
|
sms = rsvp.GetSMS()
|
|
)
|
|
s, _ := settings.Load()
|
|
|
|
// Can we get an "auto-login" link?
|
|
var claimURL string
|
|
if rsvp.Contact.Secret != "" {
|
|
claimURL = fmt.Sprintf("%s/c/%s?e=%d",
|
|
strings.Trim(s.Site.URL, "/"),
|
|
rsvp.Contact.Secret,
|
|
ev.ID,
|
|
)
|
|
}
|
|
|
|
// Do they have... an e-mail address?
|
|
if email != "" {
|
|
go mail.SendEmail(mail.Email{
|
|
To: email,
|
|
Subject: fmt.Sprintf("Invitation to: %s", ev.Title),
|
|
Data: map[string]interface{}{
|
|
"RSVP": rsvp,
|
|
"Event": ev,
|
|
"URL": strings.Trim(s.Site.URL, "/") + "/e/" + ev.Fragment,
|
|
"ClaimURL": claimURL,
|
|
},
|
|
Template: ".email/event-invite.gohtml",
|
|
})
|
|
}
|
|
|
|
// An SMS number?
|
|
if sms != "" {
|
|
// TODO: Twilio
|
|
}
|
|
|
|
rsvp.Notified = true
|
|
rsvp.Save()
|
|
}
|