seperates emails and webhook notifications

This commit is contained in:
Godfrey M 2024-09-18 15:23:44 -07:00
parent dddbf27d78
commit c40209f500

View file

@ -43,29 +43,30 @@ class CheckoutableListener
* Make a checkout acceptance and attach it in the notification * Make a checkout acceptance and attach it in the notification
*/ */
$acceptance = $this->getCheckoutAcceptance($event); $acceptance = $this->getCheckoutAcceptance($event);
$notifiables = $this->getNotifiables($event);
// Send email notifications
try { try {
if (! $event->checkedOutTo->locale) { foreach ($notifiables as $notifiable) {
Notification::locale(Setting::getSettings()->locale)->send( if ($notifiable instanceof User && $notifiable->email != '') {
$this->getNotifiables($event), if (! $event->checkedOutTo->locale){
$this->getCheckoutNotification($event, $acceptance) Notification::locale(Setting::getSettings()->locale)->send($notifiables, $this->getCheckoutNotification($event, $acceptance));
); }
} else { else {
Notification::send( Notification::send($notifiable, $this->getCheckoutNotification($event, $acceptance));
$this->getNotifiables($event), }
$this->getCheckoutNotification($event, $acceptance) }
);
} }
// Send Webhook notification
if ($this->shouldSendWebhookNotification()) { if ($this->shouldSendWebhookNotification()) {
// Slack doesn't include the URL in its messaging format, so this is needed to hit the endpoint
//slack doesn't include the url in its messaging format so this is needed to hit the endpoint if (Setting::getSettings()->webhook_selected === 'slack' || Setting::getSettings()->webhook_selected === 'general') {
if(Setting::getSettings()->webhook_selected =='slack' || Setting::getSettings()->webhook_selected =='general') {
Notification::route('slack', Setting::getSettings()->webhook_endpoint) Notification::route('slack', Setting::getSettings()->webhook_endpoint)
->notify($this->getCheckoutNotification($event)); ->notify($this->getCheckoutNotification($event));
} else {
Notification::route(Setting::getSettings()->webhook_selected, Setting::getSettings()->webhook_endpoint)
->notify($this->getCheckoutNotification($event, $acceptance));
} }
} }
} catch (ClientException $e) { } catch (ClientException $e) {
@ -75,6 +76,7 @@ class CheckoutableListener
} }
} }
/** /**
* Notify the user and post to webhook about the checked in checkoutable * Notify the user and post to webhook about the checked in checkoutable
*/ */
@ -100,26 +102,29 @@ class CheckoutableListener
} }
} }
} }
$acceptance = $this->getCheckoutAcceptance($event);
$notifiables = $this->getNotifiables($event);
// Send email notifications
try { try {
// Use default locale foreach ($notifiables as $notifiable) {
if (! $event->checkedOutTo->locale) { if ($notifiable instanceof User && $notifiable->email != '') {
Notification::locale(Setting::getSettings()->locale)->send( if (! $event->checkedOutTo->locale){
$this->getNotifiables($event), Notification::locale(Setting::getSettings()->locale)->send($notifiables, $this->getCheckoutNotification($event, $acceptance));
$this->getCheckinNotification($event)
);
} else {
Notification::send(
$this->getNotifiables($event),
$this->getCheckinNotification($event)
);
} }
//slack doesn't include the url in its messaging format so this is needed to hit the endpoint else {
if(Setting::getSettings()->webhook_selected =='slack' || Setting::getSettings()->webhook_selected =='general') { Notification::send($notifiable, $this->getCheckinNotification($event, $acceptance));
}
}
}
// Send Webhook notification
if ($this->shouldSendWebhookNotification()) { if ($this->shouldSendWebhookNotification()) {
// Slack doesn't include the URL in its messaging format, so this is needed to hit the endpoint
if (Setting::getSettings()->webhook_selected === 'slack' || Setting::getSettings()->webhook_selected === 'general') {
Notification::route('slack', Setting::getSettings()->webhook_endpoint) Notification::route('slack', Setting::getSettings()->webhook_endpoint)
->notify($this->getCheckinNotification($event)); ->notify($this->getCheckinNotification($event));
} else {
Notification::route(Setting::getSettings()->webhook_selected, Setting::getSettings()->webhook_endpoint)
->notify($this->getCheckinNotification($event, $acceptance));
} }
} }