Make notifications cancellable

This commit makes certain notifications cancellable. This enables notifications to be sent conditionally based on the user's choice.
This commit is contained in:
2020-08-31 22:06:00 +01:00
parent 27b1f3170b
commit 17fb0e236f
8 changed files with 106 additions and 62 deletions

View File

@@ -10,10 +10,12 @@ use Illuminate\Notifications\Messages\SlackMessage;
use App\User;
use App\Facades\UUID;
use App\Traits\Cancellable;
use App\Facades\Options;
class NewUser extends Notification implements ShouldQueue
{
use Queueable;
use Queueable, Cancellable;
public $user;
@@ -27,18 +29,14 @@ class NewUser extends Notification implements ShouldQueue
$this->user = $user;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
public function channels($notifiable)
{
return ($notifiable->isStaffMember())
? ['slack', 'mail']
: ['mail'];
return $this->chooseChannelsViaOptions();
}
public function optOut($notifiable)
{
return Options::getOption('notify_new_user') !== 1;
}
/**