BusinessCardEmailService
in package
Notifie les employés par e-mail de la mise à disposition de leur carte de visite digitale.
Compose un TemplatedEmail à partir du template email/business_card_ready.html.twig,
en y injectant l'URL publique de la carte et, le cas échéant, le lien de téléchargement du
QR Code. L'expéditeur provient de MailerService et les URL absolues sont générées via le
routeur. Appelé notamment lors de la publication d'une carte par
BusinessCardGenerationService::publishBusinessCard().
Table of Contents
Properties
- $features : FeaturesExtension
- $logger : LoggerInterface
- $mailer : MailerInterface
- $mailerService : MailerService
- $urlGenerator : UrlGeneratorInterface
Methods
- __construct() : mixed
- sendBusinessCardEmail() : bool
- Envoie un email à l'employé avec sa carte de visite digitale
- generateBusinessCardUrl() : string
- Génère l'URL publique de la carte de visite
Properties
$features
private
FeaturesExtension
$features
$logger
private
LoggerInterface
$logger
$mailer
private
MailerInterface
$mailer
$mailerService
private
MailerService
$mailerService
$urlGenerator
private
UrlGeneratorInterface
$urlGenerator
Methods
__construct()
public
__construct(MailerInterface $mailer, UrlGeneratorInterface $urlGenerator, LoggerInterface $logger, MailerService $mailerService, FeaturesExtension $features) : mixed
Parameters
- $mailer : MailerInterface
-
Transport d'envoi des e-mails.
- $urlGenerator : UrlGeneratorInterface
-
Génération des URL absolues (carte publique, téléchargement du QR Code).
- $logger : LoggerInterface
-
Journalisation des envois et des erreurs.
- $mailerService : MailerService
-
Fournit l'adresse et le nom d'expéditeur configurés.
- $features : FeaturesExtension
-
Extension Twig utilisée ici pour slugifier entreprise et poste dans l'URL.
sendBusinessCardEmail()
Envoie un email à l'employé avec sa carte de visite digitale
public
sendBusinessCardEmail(BusinessCardAize $businessCard) : bool
Précondition : la carte doit être rattachée à un employé disposant d'une adresse e-mail, et
son entreprise ainsi que son intitulé de poste doivent être exploitables pour construire
l'URL publique (voir BusinessCardEmailService::generateBusinessCardUrl()). Le lien de
téléchargement du QR Code (route download_qr_code) n'est ajouté au contexte que si la carte
possède un qrCodePath, sinon null est transmis au template.
Effets de bord : envoi d'un e-mail via le transport configuré et écriture de logs. Aucune modification en base n'est réalisée ici.
Toutes les erreurs sont capturées et journalisées en niveau error : la méthode ne propage
aucune exception, y compris l'absence d'employé associé.
Parameters
- $businessCard : BusinessCardAize
-
Carte de visite à communiquer à son employé.
Return values
bool —true si l'e-mail a été remis au transport, false en cas d'échec quelconque
(employé manquant, erreur de rendu ou erreur de transport).
generateBusinessCardUrl()
Génère l'URL publique de la carte de visite
private
generateBusinessCardUrl(BusinessCardAize $businessCard) : string
Construit une URL absolue vers la route app_show_company_business_card à partir du nom de
l'entreprise de l'employé et de l'intitulé de poste de la carte, tous deux passés au
slugifieur de FeaturesExtension, ainsi que du hash public de la carte.
Précondition : la carte possède un employé rattaché à une entreprise ; aucun contrôle de
nullité n'est effectué, un chaînage sur null provoquerait une \Error.
Parameters
- $businessCard : BusinessCardAize
-
Carte dont on veut l'adresse publique.
Return values
string —URL absolue de consultation de la carte.