From 280cfcd6cf54bd8a92ad3bbca254a8c8dbf3fe3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sun, 10 May 2026 19:39:43 +0300 Subject: [PATCH] feat(routes): register POST /api/webhook/supplier/{secret} MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Spec §5.1 supplier-webhook endpoint. SupplierWebhookController tests переходят с 405 на 8/8 PASS. Co-Authored-By: Claude Opus 4.7 (1M context) --- app/routes/web.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/routes/web.php b/app/routes/web.php index 755fbba9..147cd333 100644 --- a/app/routes/web.php +++ b/app/routes/web.php @@ -126,6 +126,13 @@ Route::get('/api/lead-statuses', 'App\Http\Controllers\Api\LeadStatusController@ Route::post('/api/webhook/{token}', 'App\Http\Controllers\Api\WebhookReceiveController@receive') ->where('token', '[A-Za-z0-9\-_]+'); +// Supplier-integration webhook (Plan 2/5, spec §5.1). +// Platform-wide endpoint: единый {secret} в URL для всех лидов от crm.bp-gr.ru. +// Auth: secret (system_settings.supplier_webhook_secret) + IP allowlist +// (system_settings.supplier_ip_allowlist). Не пересекается с legacy /api/webhook/{token}. +Route::post('/api/webhook/supplier/{secret}', 'App\Http\Controllers\Api\SupplierWebhookController@receive') + ->where('secret', '[A-Za-z0-9_\-]+'); + // 2FA setup wizard — все эндпоинты под auth:sanctum (только для уже залогиненных). Route::prefix('/api/2fa')->middleware('auth:sanctum')->group(function () { Route::post('/init', 'App\Http\Controllers\Api\TwoFactorSetupController@init');