diff --git a/app/Events/VolunteerRoleUpdated.php b/app/Events/VolunteerRoleUpdated.php new file mode 100644 index 0000000..e73bd47 --- /dev/null +++ b/app/Events/VolunteerRoleUpdated.php @@ -0,0 +1,45 @@ +userId = $userId; + $this->role = $role; + } + + /** + * Get the channels the event should broadcast on. + * + * @return array + */ + public function broadcastOn(): array + { + return [ + new PrivateChannel('user.' . $this->userId), + ]; + } + + public function broadcastAs() + { + return 'volunteer.role.updated'; + } +} diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index d93a542..f58ba6b 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Events\UserCreated; +use App\Events\VolunteerRoleUpdated; use App\Mail\CreateUserByAdminMail; use App\Mail\DeactivateAccountMail; use App\Mail\DeleteAccountMail; @@ -255,10 +256,15 @@ class UserController extends Controller $role = \App\Services\GetRole::getRole($request['role']); $notification = Notification::create([ - 'content' => "Votre rôle à changé pour {$role} !", + 'content' => "Votre rôle à changé pour : {$role} !", ]); $notification->users()->attach($user->id); + broadcast(new VolunteerRoleUpdated( + $user->id, + $role + )); + $data = [ 'name' => $user->name, 'lastname' => $user->lastname,