diff --git a/src/Jobs/Handler/Invitation.hs b/src/Jobs/Handler/Invitation.hs index f9c93828f..f86256f33 100644 --- a/src/Jobs/Handler/Invitation.hs +++ b/src/Jobs/Handler/Invitation.hs @@ -3,6 +3,11 @@ module Jobs.Handler.Invitation ) where import Import +import Utils.Lens +import Handler.Utils.Mail + +import qualified Data.CaseInsensitive as CI +import Text.Hamlet dispatchJobInvitation :: UserId @@ -11,4 +16,12 @@ dispatchJobInvitation :: UserId -> Text -> Html -> Handler () -dispatchJobInvitation = error "dispatchJobInvitation" +dispatchJobInvitation jInviter jInvitee jInvitationUrl jInvitationSubject jInvitationExplanation = do + mInviter <- runDB $ get jInviter + + whenIsJust mInviter $ \jInviter' -> mailT def $ do + _mailTo .= [Address Nothing $ CI.original jInvitee] + replaceMailHeader "Reply-To" . Just . renderAddress $ userAddress jInviter' + replaceMailHeader "Auto-Submitted" $ Just "auto-generated" + replaceMailHeader "Subject" $ Just jInvitationSubject + addPart ($(ihamletFile "templates/mail/invitation.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX)) diff --git a/templates/mail/invitation.hamlet b/templates/mail/invitation.hamlet new file mode 100644 index 000000000..ef3b004e5 --- /dev/null +++ b/templates/mail/invitation.hamlet @@ -0,0 +1,11 @@ +$newline never +\ + +
+ + ++ #{jInvitationExplanation} +