feat: add domain_deleted notif

This commit is contained in:
Maël Gangloff
2025-01-02 18:08:51 +01:00
parent 0761e7dce8
commit e97cb95637
7 changed files with 92 additions and 4 deletions

View File

@@ -0,0 +1,58 @@
<?php
namespace App\Notifier;
use App\Entity\Domain;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\Mime\Address;
use Symfony\Component\Notifier\Message\ChatMessage;
use Symfony\Component\Notifier\Message\EmailMessage;
use Symfony\Component\Notifier\Message\PushMessage;
use Symfony\Component\Notifier\Notification\Notification;
use Symfony\Component\Notifier\Recipient\EmailRecipientInterface;
use Symfony\Component\Notifier\Recipient\RecipientInterface;
class DomainDeletedNotification extends DomainWatchdogNotification
{
public function __construct(
private readonly Address $sender,
private readonly Domain $domain,
) {
parent::__construct();
}
public function asChatMessage(?RecipientInterface $recipient = null, ?string $transport = null): ?ChatMessage
{
$ldhName = $this->domain->getLdhName();
$this->subject("Error: Domain Deleted $ldhName")
->content("Domain name $ldhName has been deleted from WHOIS.")
->importance(Notification::IMPORTANCE_URGENT);
return ChatMessage::fromNotification($this);
}
public function asPushMessage(?RecipientInterface $recipient = null, ?string $transport = null): ?PushMessage
{
$ldhName = $this->domain->getLdhName();
$this->subject("Error: Domain Deleted $ldhName")
->content("Domain name $ldhName has been deleted from WHOIS.")
->importance(Notification::IMPORTANCE_URGENT);
return PushMessage::fromNotification($this);
}
public function asEmailMessage(EmailRecipientInterface $recipient): EmailMessage
{
$ldhName = $this->domain->getLdhName();
return new EmailMessage((new TemplatedEmail())
->from($this->sender)
->to($recipient->getEmail())
->subject("Domain name $ldhName has been removed from WHOIS")
->htmlTemplate('emails/errors/domain_deleted.html.twig')
->locale('en')
->context([
'domain' => $this->domain,
]));
}
}

View File

@@ -43,10 +43,12 @@ class DomainOrderErrorNotification extends DomainWatchdogNotification
public function asEmailMessage(EmailRecipientInterface $recipient): EmailMessage
{
$ldhName = $this->domain->getLdhName();
return new EmailMessage((new TemplatedEmail())
->from($this->sender)
->to($recipient->getEmail())
->subject('An error occurred while ordering a domain name')
->subject("Domain name $ldhName tried to be purchased")
->htmlTemplate('emails/errors/domain_order.html.twig')
->locale('en')
->context([

View File

@@ -48,11 +48,13 @@ class DomainOrderNotification extends DomainWatchdogNotification
public function asEmailMessage(EmailRecipientInterface $recipient): EmailMessage
{
$ldhName = $this->domain->getLdhName();
return new EmailMessage((new TemplatedEmail())
->from($this->sender)
->to($recipient->getEmail())
->priority(Email::PRIORITY_HIGHEST)
->subject('A domain name has been ordered')
->subject("Domain name $ldhName has just been purchased")
->htmlTemplate('emails/success/domain_ordered.html.twig')
->locale('en')
->context([

View File

@@ -43,10 +43,12 @@ class DomainUpdateErrorNotification extends DomainWatchdogNotification
public function asEmailMessage(EmailRecipientInterface $recipient): EmailMessage
{
$ldhName = $this->domain->getLdhName();
return new EmailMessage((new TemplatedEmail())
->from($this->sender)
->to($recipient->getEmail())
->subject('An error occurred while updating a domain name')
->subject("Domain name $ldhName tried to be updated")
->htmlTemplate('emails/errors/domain_update.html.twig')
->locale('en')
->context([

View File

@@ -46,11 +46,13 @@ class DomainUpdateNotification extends DomainWatchdogNotification
public function asEmailMessage(EmailRecipientInterface $recipient): EmailMessage
{
$ldhName = $this->domainEvent->getDomain()->getLdhName();
return new EmailMessage((new TemplatedEmail())
->from($this->sender)
->to($recipient->getEmail())
->priority(Email::PRIORITY_HIGHEST)
->subject('A domain name has been changed')
->subject("Domain name $ldhName information has been updated")
->htmlTemplate('emails/success/domain_updated.html.twig')
->locale('en')
->context([