<?php
declare(strict_types=1);
namespace SHServ\Controllers;
use SHServ\Integrations\GAuth\AuthService;
class WebhookController extends \SHServ\Middleware\Controller
{
/**
* POST /webhooks/gnexus-auth
*/
public function gnexus_auth()
{
$rawBody = file_get_contents('php://input');
$headers = getallheaders();
$service = new AuthService();
try {
$service->verifyWebhook($rawBody, $headers);
} catch (\Throwable $e) {
http_response_code(401);
return json_encode(['status' => false, 'error' => 'webhook_verification_failed']);
}
try {
$event = $service->parseWebhook($rawBody);
} catch (\Throwable $e) {
http_response_code(400);
return json_encode(['status' => false, 'error' => 'webhook_parse_failed']);
}
// Route to handler
$handler = new \SHServ\Integrations\GAuth\Webhook\WebhookRouter();
$handler->handle($event);
return json_encode(['status' => true]);
}
}