30 lines
955 B
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
|
|
}
|
|
}
|