ingoldsby / laravel-dashboard-display-webhook-tile
A tile to display webhooks for Laravel Dashboard
Requires
- php: ^7.4
- spatie/laravel-dashboard: ^1.0
- spatie/laravel-webhook-client: ^2.7
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-10-27 06:08:02 UTC
README
This tile can be used on the Laravel Dashboard to display a webhook from your database.
Installation
You can install the package via composer:
composer require ingoldsby/laravel-dashboard-display-webhook-tile
This package uses spatie/laravel-webhook-client
as the webhook provider.
Usage
In the dashboard
config file, you must add this configuration in the tiles
key. You can add a configuration in the configurations key per Webhook tile that you want to display. In this example, the webhook_calls table has been amended to capture the headers of the incoming request. Due to the formatting of the request, an offset is required (in this case, 0) to get the correct item.
// in config/dashboard.php return [ // ... 'tiles' => [ 'webhook' => [ 'configurations' => [ 'default' => [ 'column' => 'headers', 'value' => 'x-shopify-topic', 'offset' => 0, ] ], 'refresh_interval_in_seconds' => 60, ] ], ];
This example shows multiple configurations, with the second one named payload
, matching the default column in the webhook_calls
table. Note: the default column in this example does not need an offset so it is not included.
// in config/dashboard.php return [ // ... 'tiles' => [ 'webhook' => [ 'configurations' => [ 'default' => [ 'column' => 'headers', 'value' => 'x-shopify-topic', 'offset' => 0, ], 'payload' => [ 'column' => 'payload', 'value' => 'id', ], ], 'refresh_interval_in_seconds' => 60, ] ], ];
In app\Console\Kernel.php
you should schedule the \Ingoldsby\DisplayWebhookTile\Commands\FetchDisplayWebhookCommand
to run. You can decide the frequency of running the command.
// in app/console/Kernel.php protected function schedule(Schedule $schedule) { // ... $schedule->command(\Ingoldsby\DisplayWebhookTile\Commands\FetchDisplayWebhookCommand::class)->everyMinute(); }
To display webhook details of another configuration, simply add the name of the configuration as an arugment.
// in app/console/Kernel.php protected function schedule(Schedule $schedule) { // ... $schedule->command(\Ingoldsby\DisplayWebhookTile\Commands\FetchDisplayWebhookCommand::class, ['alternate-configuration-name'])->everyMinute(); }
In your dashboard view you can use the tile:
livewire:display-webhook-tile
<x-dashboard> <livewire:display-webhook-tile position="a1" /> </x-dashboard>
To display webhook details of another configuration, pass the name of the configuration to the configuration-name prop.
<x-dashboard> <livewire:display-webhook-tile position="a1" configuration-name="alternate-configuration-name" /> </x-dashboard>
The default title of the tile will be Latest Webhook
unless you pass a string using the title prop.
<x-dashboard> <livewire:display-webhook-tile position="a1" configuration-name="alternate-configuration-name" title="Title of tile" /> </x-dashboard>
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email instead of using the issue tracker.
Support Spatie
I have learnt a lot from Spatie's various packages, including Mailcoach, and would recommend you check them out if you want to know more.
Learn how to create a package like theirs, by watching Spatie's premium video course:
Spatie invest a lot of resources into creating best in class open source packages. You can support them by buying one of their paid products.
Credits
License
The MIT License (MIT). Please see License File for more information.