|
|
<?php
namespace App\Listeners;
use App\Channels\FcmChannel; use App\Events\BusinessUserCreate; use App\Models\Business; use App\Models\User; use App\Notifications\DBNotification; use App\Notifications\FcmNotification; use App\Notifications\MailNotification; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Support\Facades\Notification;
class BusinessUserCreateNotif { /** * Create the event listener. * * @return void */ public function __construct() { //
}
/** * Handle the event. * * @param BusinessUserCreate $event * @return void */ public function handle(BusinessUserCreate $event) { $payload = $event->message; $new_user = User::findOrFail($payload->data->original->user_id); $owners = Business::findOrFail($payload->business)->owners()->where('id', '!=', $new_user->id)->get();
$notif = [ 'greeting' => __('notification.'.$payload->data->table_name.'.'.enum('cruds.inverse.'.$payload->data->crud_id.'.singular_name').'.greeting'), 'subject' => __('notification.'.$payload->data->table_name.'.'.enum('cruds.inverse.'.$payload->data->crud_id.'.singular_name').'.subject'), 'title' => __('notification.'.$payload->data->table_name.'.'.enum('cruds.inverse.'.$payload->data->crud_id.'.singular_name').'.title'), 'body' => __('notification.'.$payload->data->table_name.'.'.enum('cruds.inverse.'.$payload->data->crud_id.'.singular_name').'.body', ['business' => request('_business_info')['name'], 'user' => $new_user->name]) ];
$users = $owners->prepend($new_user); Notification::send($users, new MailNotification($notif)); Notification::send($users, new DBNotification($notif)); Notification::send($users, new FcmNotification($notif)); } }
|