Downloads
Stars
Version
This tile can be used on the Laravel Dashboard to display a webhook from your database.
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.
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>
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email instead of using the issue tracker.
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.
The MIT License (MIT). Please see License File for more information.