Merge pull request #13733 from marcusmoore/bug/sc-23453

Fixed notification logic to ensure check in and out emails are delivered
This commit is contained in:
snipe 2023-10-11 12:00:37 +01:00 committed by GitHub
commit 138ec33555
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -18,6 +18,7 @@ use App\Notifications\CheckoutAccessoryNotification;
use App\Notifications\CheckoutAssetNotification; use App\Notifications\CheckoutAssetNotification;
use App\Notifications\CheckoutConsumableNotification; use App\Notifications\CheckoutConsumableNotification;
use App\Notifications\CheckoutLicenseSeatNotification; use App\Notifications\CheckoutLicenseSeatNotification;
use GuzzleHttp\Exception\ClientException;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
use Exception; use Exception;
use Log; use Log;
@ -41,14 +42,9 @@ 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);
try { try {
if ($this->shouldSendWebhookNotification()) {
Notification::route('slack', Setting::getSettings()->webhook_endpoint)
->notify($this->getCheckoutNotification($event));
}
if (! $event->checkedOutTo->locale) { if (! $event->checkedOutTo->locale) {
Notification::locale(Setting::getSettings()->locale)->send( Notification::locale(Setting::getSettings()->locale)->send(
$this->getNotifiables($event), $this->getNotifiables($event),
@ -60,8 +56,15 @@ class CheckoutableListener
$this->getCheckoutNotification($event, $acceptance) $this->getCheckoutNotification($event, $acceptance)
); );
} }
if ($this->shouldSendWebhookNotification()) {
Notification::route('slack', Setting::getSettings()->webhook_endpoint)
->notify($this->getCheckoutNotification($event));
}
} catch (ClientException $e) {
Log::debug("Exception caught during checkout notification: " . $e->getMessage());
} catch (Exception $e) { } catch (Exception $e) {
Log::error("Exception caught during checkout notification: ".$e->getMessage()); Log::error("Exception caught during checkout notification: " . $e->getMessage());
} }
} }
@ -92,11 +95,6 @@ class CheckoutableListener
} }
try { try {
if ($this->shouldSendWebhookNotification()) {
Notification::route('slack', Setting::getSettings()->webhook_endpoint)
->notify($this->getCheckinNotification($event));
}
// Use default locale // Use default locale
if (! $event->checkedOutTo->locale) { if (! $event->checkedOutTo->locale) {
Notification::locale(Setting::getSettings()->locale)->send( Notification::locale(Setting::getSettings()->locale)->send(
@ -109,8 +107,15 @@ class CheckoutableListener
$this->getCheckinNotification($event) $this->getCheckinNotification($event)
); );
} }
if ($this->shouldSendWebhookNotification()) {
Notification::route('slack', Setting::getSettings()->webhook_endpoint)
->notify($this->getCheckinNotification($event));
}
} catch (ClientException $e) {
Log::debug("Exception caught during checkout notification: " . $e->getMessage());
} catch (Exception $e) { } catch (Exception $e) {
Log::error("Exception caught during checkin notification: ".$e->getMessage()); Log::error("Exception caught during checkin notification: " . $e->getMessage());
} }
} }