39 lines
1.0 KiB
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']);
|
|
}
|
|
}
|