pelican-panel-mirror/app/Jobs/ProcessWebhook.php
Lance Pioch da195fd2fe
PHPstan updates (#1047)
* Not found property rule

* Make these “better”

* Day 1

* Day 2

* Day 3

* Dat 4

* Remove disabled check

* Day 4 continued

* Run pint

* Final changes hopefully

* Pint fixes

* Fix again

* Reset these

* Update app/Filament/Admin/Pages/Health.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

* Update app/Traits/CheckMigrationsTrait.php

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>

---------

Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
2025-03-03 14:41:19 -05:00

45 lines
1.2 KiB
PHP

<?php
namespace App\Jobs;
use App\Models\WebhookConfiguration;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Http;
class ProcessWebhook implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* @param array<mixed> $data
*/
public function __construct(
private WebhookConfiguration $webhookConfiguration,
private string $eventName,
private array $data
) {}
public function handle(): void
{
try {
Http::withHeader('X-Webhook-Event', $this->eventName)
->post($this->webhookConfiguration->endpoint, $this->data)
->throw();
$successful = now();
} catch (\Exception) {
$successful = null;
}
$this->webhookConfiguration->webhooks()->create([
'payload' => $this->data,
'successful_at' => $successful,
'event' => $this->eventName,
'endpoint' => $this->webhookConfiguration->endpoint,
]);
}
}