From 016a6f4e4faa46f522a2d9492250afaf324e4a21 Mon Sep 17 00:00:00 2001 From: freek Date: Tue, 4 Dec 2018 09:08:25 +0100 Subject: [PATCH] clean up endpoint --- .../Http/Controllers/SendMessage.php | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/Dashboard/Http/Controllers/SendMessage.php b/src/Dashboard/Http/Controllers/SendMessage.php index fdd3747..eea53a3 100644 --- a/src/Dashboard/Http/Controllers/SendMessage.php +++ b/src/Dashboard/Http/Controllers/SendMessage.php @@ -2,6 +2,7 @@ namespace BeyondCode\LaravelWebSockets\Dashboard\Http\Controllers; +use BeyondCode\LaravelWebSockets\Statistics\Rules\AppId; use Pusher\Pusher; use Illuminate\Http\Request; use Illuminate\Broadcasting\Broadcasters\PusherBroadcaster; @@ -9,19 +10,34 @@ use Illuminate\Broadcasting\Broadcasters\PusherBroadcaster; class SendMessage { public function __invoke(Request $request) + { + $validated = $request->validate([ + 'appId' => ['required', new AppId()], + 'key' => 'required', + 'secret' => 'required', + 'channel' => 'required', + 'event' => 'required', + 'data' => 'json', + ]); + + $this->getPusherBroadcaster($validated)->broadcast( + [$validated['channel']], + $validated['event'], + json_decode($validated['data'], true) + ); + + return 'ok'; + } + + protected function getPusherBroadcaster(array $validated): PusherBroadcaster { $pusher = new Pusher( - $request->key, - $request->secret, - $request->appId, + $validated['key'], + $validated['secret'], + $validated['appId'], config('broadcasting.connections.pusher.options', []) ); - return (new PusherBroadcaster($pusher)) - ->broadcast( - [$request->channel], - $request->event, - json_decode($request->data, true) - ); + return new PusherBroadcaster($pusher); } }