27 lines
972 B
PHP
27 lines
972 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\V1\Guest;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Services\MailFlow\DeliveryEvents;
|
|
use App\Services\MailFlow\Settings;
|
|
use App\Services\MailFlow\WebhookSignature;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ResendController extends Controller
|
|
{
|
|
public function webhook(Request $request, WebhookSignature $signature, DeliveryEvents $events)
|
|
{
|
|
abort_unless(Settings::get('enabled'), 404);
|
|
$body = $request->getContent();
|
|
abort_if(strlen($body) > 262144, 413);
|
|
$id = (string) $request->header('svix-id');
|
|
abort_unless($signature->valid($body, $id, (string) $request->header('svix-timestamp'),
|
|
(string) $request->header('svix-signature'), (string) Settings::get('resend_webhook_secret')), 401);
|
|
$event = json_decode($body, true);
|
|
abort_unless(is_array($event), 400);
|
|
$events->receive($id, $event);
|
|
return response()->json(['ok' => true]);
|
|
}
|
|
}
|