From c770f7b09825bf48850117912d9d3de15b17f451 Mon Sep 17 00:00:00 2001 From: Louis Jeckel Date: Tue, 14 Apr 2020 16:43:47 +0200 Subject: [PATCH] async webhook --- ...unWebhook.php => DispatchMailgunEvent.php} | 4 +-- app/Events/MailgunWebhook.php | 30 +++++++++++++++++ app/Http/Controllers/WebhookController.php | 7 ++-- app/Listeners/ProcessMailgunWebhook.php | 32 +++++++++++++++++++ app/Providers/EventServiceProvider.php | 7 ++-- 5 files changed, 73 insertions(+), 7 deletions(-) rename app/Events/{ProcessMailgunWebhook.php => DispatchMailgunEvent.php} (95%) create mode 100644 app/Events/MailgunWebhook.php create mode 100644 app/Listeners/ProcessMailgunWebhook.php diff --git a/app/Events/ProcessMailgunWebhook.php b/app/Events/DispatchMailgunEvent.php similarity index 95% rename from app/Events/ProcessMailgunWebhook.php rename to app/Events/DispatchMailgunEvent.php index 9346d65..b7cb510 100644 --- a/app/Events/ProcessMailgunWebhook.php +++ b/app/Events/DispatchMailgunEvent.php @@ -14,7 +14,7 @@ use Illuminate\Queue\SerializesModels; use Illuminate\Support\Arr; use Illuminate\Support\Str; -class ProcessMailgunWebhook implements ShouldBroadcast +class DispatchMailgunEvent implements ShouldBroadcast { use Dispatchable, InteractsWithSockets, SerializesModels; @@ -32,7 +32,7 @@ class ProcessMailgunWebhook implements ShouldBroadcast /** * Create a new event instance. * - * @return void + * @param $webhookData */ public function __construct($webhookData) { diff --git a/app/Events/MailgunWebhook.php b/app/Events/MailgunWebhook.php new file mode 100644 index 0000000..a3f4f91 --- /dev/null +++ b/app/Events/MailgunWebhook.php @@ -0,0 +1,30 @@ +webhookData = $webhookData; + } + + +} diff --git a/app/Http/Controllers/WebhookController.php b/app/Http/Controllers/WebhookController.php index bb25353..cb80268 100644 --- a/app/Http/Controllers/WebhookController.php +++ b/app/Http/Controllers/WebhookController.php @@ -2,14 +2,15 @@ namespace App\Http\Controllers; -use App\Events\ProcessMailgunWebhook; +use App\Events\DispatchMailgunEvent; +use App\Events\MailgunWebhook; use Illuminate\Http\Request; class WebhookController extends Controller { public function mailgunEvent(Request $request) { - event(new ProcessMailgunWebhook($request->toArray())); + event(new MailgunWebhook($request->toArray())); return response('ok', 200); } @@ -27,7 +28,7 @@ class WebhookController extends Controller ] ]; - event(new ProcessMailgunWebhook($data)); + event(new DispatchMailgunEvent($data)); return response('ok', 200); diff --git a/app/Listeners/ProcessMailgunWebhook.php b/app/Listeners/ProcessMailgunWebhook.php new file mode 100644 index 0000000..8b18d7e --- /dev/null +++ b/app/Listeners/ProcessMailgunWebhook.php @@ -0,0 +1,32 @@ +webhookData)); + } +} diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 45306b9..e3c91a0 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -6,8 +6,10 @@ use Illuminate\Auth\Events\Registered; use Illuminate\Auth\Listeners\SendEmailVerificationNotification; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; use Illuminate\Support\Facades\Event; -use App\Events\ProcessMailgunWebhook; +use App\Events\DispatchMailgunEvent; use App\Events\ProcessBatch; +use App\Events\MailgunWebhook; +use App\Listeners\ProcessMailgunWebhook; class EventServiceProvider extends ServiceProvider { @@ -20,7 +22,8 @@ class EventServiceProvider extends ServiceProvider Registered::class => [ SendEmailVerificationNotification::class, ], - ProcessMailgunWebhook::class => [], + MailgunWebhook::class => [ProcessMailgunWebhook::class], + DispatchMailgunEvent::class => [], ProcessBatch::class => [], ]; -- 2.39.5