feat: send email when domain ordered

This commit is contained in:
Maël Gangloff 2024-07-29 16:54:31 +02:00
parent 7e2da3eb0b
commit 691b684fc1
No known key found for this signature in database
GPG Key ID: 11FDC81C24A7F629
3 changed files with 88 additions and 1 deletions

View File

@ -5,6 +5,7 @@ namespace App\MessageHandler;
use App\Config\Connector\OvhConnector;
use App\Config\ConnectorProvider;
use App\Config\TriggerAction;
use App\Entity\Connector;
use App\Entity\Domain;
use App\Entity\DomainEvent;
use App\Entity\User;
@ -68,6 +69,7 @@ final readonly class ProcessDomainTriggerHandler
true,
$isDebug
);
$this->sendEmailDomainOrdered($domain, $connector, $watchList->getUser());
} else throw new Exception("Unknown provider");
}
@ -81,6 +83,25 @@ final readonly class ProcessDomainTriggerHandler
}
}
/**
* @throws TransportExceptionInterface
*/
private function sendEmailDomainOrdered(Domain $domain, Connector $connector, User $user): void
{
$email = (new TemplatedEmail())
->from($this->mailerSenderEmail)
->to($user->getEmail())
->priority(Email::PRIORITY_HIGHEST)
->subject('A domain name has been ordered')
->htmlTemplate('emails/success/domain_ordered.html.twig')
->locale('en')
->context([
"domain" => $domain,
"provider" => $connector->getProvider()->value
]);
$this->mailer->send($email);
}
/**
* @throws TransportExceptionInterface
@ -92,7 +113,7 @@ final readonly class ProcessDomainTriggerHandler
->to($user->getEmail())
->priority(Email::PRIORITY_HIGHEST)
->subject('A domain name has been changed')
->htmlTemplate('emails/domain_updated.html.twig')
->htmlTemplate('emails/success/domain_updated.html.twig')
->locale('en')
->context([
"event" => $domainEvent

View File

@ -0,0 +1,66 @@
<!DOCTYPE html>
<html lang="en">
<head>
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
color: #333;
}
.container {
max-width: 600px;
margin: 0 auto;
padding: 20px;
border: 1px solid #ddd;
border-radius: 5px;
background-color: #f9f9f9;
}
.header {
text-align: center;
margin-bottom: 20px;
}
.header h1 {
font-size: 24px;
color: #0056b3;
}
.content {
margin-bottom: 20px;
}
.content p {
margin: 0 0 10px;
}
.footer {
text-align: center;
color: #777;
}
</style>
<title>Domain Watchdog - Domain Ordered</title>
</head>
<body>
<div class="container">
<div class="header">
<h1>Domain Watchdog - Domain Ordered</h1>
</div>
<div class="content">
<p>Hello,</p>
<p>We are pleased to inform you that a domain name present in your Watchlist has been ordered using the
connector you have chosen.</p>
<p><strong>Domain name:</strong> {{ domain.ldhName }}</p>
<p><strong>Connector provider :</strong> {{ provider }}</p>
<br/>
<p>Thank you for your understanding,</p>
<p>Sincerely,</p>
<p>Domain Watchdog</p>
</div>
<div class="footer">
<p>&copy; Domain Watchdog</p>
</div>
</div>
</body>
</html>