diff --git a/app/Http/Controllers/V1/Client/ClientController.php b/app/Http/Controllers/V1/Client/ClientController.php index 7bd810d..8747cac 100644 --- a/app/Http/Controllers/V1/Client/ClientController.php +++ b/app/Http/Controllers/V1/Client/ClientController.php @@ -44,7 +44,18 @@ class ClientController extends Controller $userService = new UserService(); if (!$userService->isAvailable($user)) { - return response()->json(['message' => 'Account unavailable'], 403); + HookManager::call('client.subscribe.unavailable'); + return response('', 200, ['Content-Type' => 'text/plain']); + } + + return $this->doSubscribe($request, $user); + } + + public function doSubscribe(Request $request, $user, $servers = null) + { + if ($servers === null) { + $servers = ServerService::getAvailableServers($user); + $servers = HookManager::filter('client.subscribe.servers', $servers, $user, $request); } $clientInfo = $this->getClientInfo($request); @@ -55,9 +66,6 @@ class ClientController extends Controller $protocolClassName = app('protocols.manager')->matchProtocolClassName($clientInfo['flag']) ?? General::class; - $servers = ServerService::getAvailableServers($user); - $servers = HookManager::filter('client.subscribe.servers', $servers, $user, $request); - $serversFiltered = $this->filterServers( servers: $servers, allowedTypes: $requestedTypes,