lenderspender / laravel-webhook-channel
Send notifications through user defined webhooks
Installs: 6 016
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 5
Forks: 0
Open Issues: 0
Requires
- php: ^8.2
- laravel/framework: ^12.0|^11.0|^10.0
- spatie/laravel-webhook-server: ^3.1.2
Requires (Dev)
- lenderspender/php-cs-fixer-rules: dev-master
- orchestra/testbench: ^10.0
- phpstan/phpstan: ^1.3.1
- phpunit/phpunit: ^11.0
- dev-main
- 3.2.0
- 3.1.0
- 3.0.1
- 3.0.0
- 2.1.0
- 2.0.0
- 1.0.0
- 0.2.0
- 0.1.1
- 0.1.0
- 0.0.1
- dev-laravel-12
- dev-tijmen/fix-resource-mapping
- dev-enum-refactor
- dev-LSP-2265-upgrade-to-php-unit-10-in-laravel-webhook-channel
- dev-LSP-2223-upgrade-to-laravel-10-php-8-2-in-laravel-webhook-channel
- dev-LSP-1658-upgrade-laravel-9
- dev-LSP-1609-php-8.1
This package is auto-updated.
Last update: 2025-02-27 11:54:36 UTC
README
Laravel webhook chanel allows you to send JsonResource
objects as notifications to your users.
Installation
You can install the package via composer:
composer require lenderspender/laravel-webhook-channel
Installation
Implement ReceivesWebhooks
on the model that you would like to receive webhooks.
<?php declare(strict_types=1); namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Notifications\Notifiable; use LenderSpender\LaravelWebhookChannel\Receiver\ReceivesWebhooks; use LenderSpender\LaravelWebhookChannel\Receiver\WebhookData; class User extends Model implements ReceivesWebhooks { use Notifiable; public function routeNotificationForWebhook() : ?WebhookData { return new WebhookData('https://example.com/webhooks/', 'users-webhook-secret'); } }
Creating webhook notifications
To allow your notifications to send webhook data you simply need to implement WebhookNotification
. It accepts Eloquent: API Resources.
<?php declare(strict_types=1); namespace App\Notifications; use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notification; use LenderSpender\LaravelWebhookChannel\Receiver\ReceivesWebhooks;use LenderSpender\LaravelWebhookChannel\Receiver\WebhookMessage;use LenderSpender\LaravelWebhookChannel\WebhookNotification; class StatusUpdatedNotification extends Notification implements WebhookNotification { use Notifiable; public function routeNotificationForWebhook(ReceivesWebhooks $notifiable) : WebhookMessage { $resource = new UserResource($notifiable); return new WebhookMessage('foo_was_updated', $resource); } }
Notifying
<?php declare(strict_types=1); namespace App\Http\Controllers; class NotificationController { public function __invoke() { auth()->user()->notify(new StatusUpdatedNotification()); } }
Viewing
Each webhook call is stored in the WebhookNotificationMessage model. Implement the HasWebhookNotificationMessages
on the model that you would like to view the webhook messages from.
<?php declare(strict_types=1); namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Notifications\Notifiable; use LenderSpender\LaravelWebhookChannel\Receiver\HasWebhookNotificationMessages; use LenderSpender\LaravelWebhookChannel\Receiver\ReceivesWebhooks; class User extends Model implements ReceivesWebhooks { use Notifiable; use HasWebhookNotificationMessages; }
Retrying send webhooks
WebhookNotificationMessages can be retried by calling the callWebhook method on the WebhookNotificationMessage
model.