Coverage for bc/kwai-bc-identity/src/kwai_bc_identity/user_invitations/user_invitation_mailer.py: 100%
17 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module that defines a mailer for a user invitation."""
3from kwai_core.domain.mailer_service import MailerService
4from kwai_core.mail.mailer import Mailer
5from kwai_core.mail.message import Message
6from kwai_core.mail.recipient import Recipient, Recipients
7from kwai_core.template.mail_template import MailTemplate
9from kwai_bc_identity.user_invitations.user_invitation import UserInvitationEntity
12class UserInvitationMailer(MailerService):
13 """Send a user invitation mail."""
15 def __init__(
16 self,
17 mailer: Mailer,
18 recipients: Recipients,
19 mail_template: MailTemplate,
20 user_invitation: UserInvitationEntity,
21 ):
22 self._mailer = mailer
23 self._recipients = recipients
24 self._mail_template = mail_template
25 self._user_invitation = user_invitation
27 def send(self) -> Message:
28 template_vars = {
29 "uuid": str(self._user_invitation.uuid),
30 "name": str(self._user_invitation.name),
31 "expires": 2,
32 }
34 mail = self._mail_template.create_mail(
35 self._recipients.with_to(
36 Recipient(
37 email=self._user_invitation.email,
38 name=str(self._user_invitation.user.name),
39 )
40 ),
41 "User invitation",
42 **template_vars,
43 )
45 self._mailer.send(mail)
47 return mail