mirror of
https://github.com/bitinflow/expose.git
synced 2026-03-13 13:35:54 +00:00
44 lines
1.2 KiB
PHP
44 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Server\Http\Controllers\Admin;
|
|
|
|
use App\Contracts\ConnectionManager;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Server\Configuration;
|
|
use GuzzleHttp\Psr7\Response;
|
|
use Illuminate\Http\Request;
|
|
use Ratchet\ConnectionInterface;
|
|
use Twig\Environment;
|
|
use Twig\Loader\ArrayLoader;
|
|
use function GuzzleHttp\Psr7\str;
|
|
use function GuzzleHttp\Psr7\stream_for;
|
|
|
|
class DisconnectSiteController extends AdminController
|
|
{
|
|
/** @var ConnectionManager */
|
|
protected $connectionManager;
|
|
|
|
/** @var Configuration */
|
|
protected $configuration;
|
|
|
|
public function __construct(ConnectionManager $connectionManager)
|
|
{
|
|
$this->connectionManager = $connectionManager;
|
|
}
|
|
|
|
public function handle(Request $request, ConnectionInterface $httpConnection)
|
|
{
|
|
$connection = $this->connectionManager->findControlConnectionForClientId($request->get('id'));
|
|
|
|
if (! is_null($connection)) {
|
|
$connection->close();
|
|
|
|
$this->connectionManager->removeControlConnection($connection);
|
|
}
|
|
|
|
$httpConnection->send(respond_json([
|
|
'sites' => $this->connectionManager->getConnections()
|
|
]));
|
|
}
|
|
}
|