33 lines
1.1 KiB
Go
33 lines
1.1 KiB
Go
package notificationimp
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/tech/sendico/pkg/model"
|
|
"github.com/tech/sendico/pkg/mservice"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func (a *NotificationAPI) onInvitation(context context.Context, account *model.Account, invitation *model.Invitation) error {
|
|
var link string
|
|
var err error
|
|
if link, err = a.dp.GetFullLink(mservice.Invitations, invitation.ID.Hex()); err != nil {
|
|
a.logger.Warn("Failed to generate invitation link", zap.Error(err), zap.String("email", invitation.Content.Email))
|
|
return err
|
|
}
|
|
mr := a.client.MailBuilder().
|
|
AddData("InviterName", account.Name).
|
|
AddData("Name", invitation.Content.Name).
|
|
AddRecipient(invitation.Content.Name, invitation.Content.Email).
|
|
SetAccountID(account.ID.Hex()).
|
|
SetLocale(account.Locale).
|
|
AddButton(link).
|
|
SetTemplateID("invitation")
|
|
if err := a.client.Send(mr); err != nil {
|
|
a.logger.Warn("Failed to send verification email", zap.Error(err), zap.String("email", invitation.Content.Email))
|
|
return err
|
|
}
|
|
a.logger.Info("Invitation email sent", zap.String("to", invitation.Content.Email), zap.String("on_behalf_of", account.Name))
|
|
return nil
|
|
}
|