Files
wticreatorstudio/Modules/Livestream/Http/Controllers/RestreamController.php
T

58 lines
1.6 KiB
PHP

<?php
namespace Modules\Livestream\Http\Controllers;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Log;
use Modules\Livestream\Facades\Restream;
use Modules\Livestream\Http\Requests\UpdateRestreamSettingsRequest;
use Modules\Livestream\Traits\ApiResponse;
class RestreamController extends Controller
{
use ApiResponse;
public function connect()
{
return Restream::connect();
}
public function callback(Request $request)
{
Log::info($request);
$message = 'Failed to connect Restream.';
$stateToken = session('state-token');
if ($request->state === $stateToken) {
$result = Restream::exchange($request->code);
Log::info('Restream exchange result:');
Log::info($result);
if ($result) {
$message = 'Restream has been successfully connected.';
}
} else {
$message = 'Mismatch state token.';
Log::info($message);
$result = false;
}
session([
'restream-connect-result' => $result ? 'success' : 'failed',
'restream-connect-message' => $message,
]);
return redirect()->route('livestream.index');
}
public function updateSettings(UpdateRestreamSettingsRequest $request)
{
Restream::updateSettings($request->safe()->client_id, $request->safe()->client_secret);
return $this->success('Restream settings has been updated.');
}
}