fradrive/src/Jobs/Handler/Invitation.hs
2020-07-17 15:54:42 +02:00

28 lines
1011 B
Haskell

module Jobs.Handler.Invitation
( dispatchJobInvitation
) where
import Import
import Handler.Utils.Mail
import qualified Data.CaseInsensitive as CI
import Text.Hamlet
dispatchJobInvitation :: Maybe UserId
-> UserEmail
-> Text
-> Text
-> Html
-> JobHandler UniWorX
dispatchJobInvitation jInviter jInvitee jInvitationUrl jInvitationSubject jInvitationExplanation = JobHandlerException $ do
mInviter <- join <$> traverse (runDB . get) jInviter
mailT def $ do
_mailTo .= [Address Nothing $ CI.original jInvitee]
whenIsJust mInviter $ \jInviter' ->
replaceMailHeader "Reply-To" . Just . renderAddress $ userAddressFrom jInviter'
replaceMailHeader "Auto-Submitted" $ Just "auto-generated"
replaceMailHeader "Subject" $ Just jInvitationSubject
addHtmlMarkdownAlternatives ($(ihamletFile "templates/mail/invitation.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))