Files
onboard/app/Http/Controllers/Api/Syncio/SyncioWebhookController.php

30 lines
955 B
PHP

<?php
namespace App\Http\Controllers\Api\Syncio;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class SyncioWebhookController extends Controller
{
public function __invoke(Request $request)
{
// Проверка секрета
if ($request->header('X-Syncio-Secret') !== config('services.syncio.secret')) {
abort(403);
}
$data = $request->json()->all();
// $data['status'] 'success' | 'partial_success' | 'failed'
// $data['tables']['success'] кол-во успешных
// $data['errors'] массив ошибок
// Дальше что нужно:
// ReplicationFinished::dispatch($data); // Job в очередь
// event(new ReplicationCompleted($data)); // Laravel Event
// Cache::put('replication_status', $data, now()->addHours(24));
return response()->noContent(); // 204
}
}