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,30 +43,31 @@ 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') {
Notification::route('slack', Setting::getSettings()->webhook_endpoint)
if(Setting::getSettings()->webhook_selected =='slack' || Setting::getSettings()->webhook_selected =='general') { ->notify($this->getCheckoutNotification($event));
} else {
Notification::route(Setting::getSettings()->webhook_selected, Setting::getSettings()->webhook_endpoint)
Notification::route('slack', Setting::getSettings()->webhook_endpoint) ->notify($this->getCheckoutNotification($event, $acceptance));
->notify($this->getCheckoutNotification($event)); }
}
} }
} catch (ClientException $e) { } catch (ClientException $e) {
Log::debug("Exception caught during checkout notification: " . $e->getMessage()); Log::debug("Exception caught during checkout notification: " . $e->getMessage());
@ -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 {
} else { Notification::send($notifiable, $this->getCheckinNotification($event, $acceptance));
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 // Send Webhook notification
if(Setting::getSettings()->webhook_selected =='slack' || Setting::getSettings()->webhook_selected =='general') { if ($this->shouldSendWebhookNotification()) {
// Slack doesn't include the URL in its messaging format, so this is needed to hit the endpoint
if ($this->shouldSendWebhookNotification()) { 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));
} }
} }