laravel-connect/src/Controllers/ConnectController.php

39 lines
1.0 KiB
PHP

<?php
namespace Bluesquare\Connect\Controllers;
use Bluesquare\Connect\Connect;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class ConnectController extends Controller
{
public function authorize(Connect $connect)
{
return $connect->redirect();
}
public function callback(Request $request, Connect $connect)
{
return $connect->loginFromCallback($request);
}
public function webhook(Request $request, Connect $connect)
{
$hash = sha1(config('bconnect.client_secret') . date('Y-m-d'));
if ($request->header('x-connect-hash') !== $hash)
abort(403);
$data = $request->validate([
'event_type' => 'required|in:create,update,delete',
'connect_data' => 'required|array',
'connect_data.*' => 'nullable',
'connect_data.id' => 'required',
'connect_data.email' => 'required_if:event_type,create|required_if:event_type,update',
]);
$connect->sync($data['event_type'], $data['connect_data']);
}
}