Browse Source

Use ServerService

Colette Contreras 5 years ago
parent
commit
7e88a39249
1 changed files with 9 additions and 63 deletions
  1. 9 63
      app/Http/Controllers/Server/PoseidonController.php

+ 9 - 63
app/Http/Controllers/Server/PoseidonController.php

@@ -89,72 +89,18 @@ class PoseidonController extends Controller
         if (empty($nodeId) || empty($localPort)) {
             return $this->error('invalid parameters', 400);
         }
-        $server = Server::find($nodeId);
-        if (!$server) {
-            return $this->error("server could not be found", 404);
-        }
-        $json = json_decode(self::SERVER_CONFIG);
-        $json->inboundDetour[0]->port = (int)$localPort;
-        $json->inbound->port = (int)$server->server_port;
-        $json->inbound->streamSettings->network = $server->network;
-        if ($server->settings) {
-            switch ($server->network) {
-                case 'tcp':
-                    $json->inbound->streamSettings->tcpSettings = json_decode($server->settings);
-                    break;
-                case 'kcp':
-                    $json->inbound->streamSettings->kcpSettings = json_decode($server->settings);
-                    break;
-                case 'ws':
-                    $json->inbound->streamSettings->wsSettings = json_decode($server->settings);
-                    break;
-                case 'http':
-                    $json->inbound->streamSettings->httpSettings = json_decode($server->settings);
-                    break;
-                case 'domainsocket':
-                    $json->inbound->streamSettings->dsSettings = json_decode($server->settings);
-                    break;
-                case 'quic':
-                    $json->inbound->streamSettings->quicSettings = json_decode($server->settings);
-                    break;
-            }
-        }
 
-        if ($server->rules) {
-            $rules = json_decode($server->rules);
-            // domain
-            if (isset($rules->domain) && !empty($rules->domain)) {
-                $domainObj = new \StdClass();
-                $domainObj->type = 'field';
-                $domainObj->domain = $rules->domain;
-                $domainObj->outboundTag = 'block';
-                array_push($json->routing->rules, $domainObj);
-            }
-            // protocol
-            if (isset($rules->protocol) && !empty($rules->protocol)) {
-                $protocolObj = new \StdClass();
-                $protocolObj->type = 'field';
-                $protocolObj->protocol = $rules->protocol;
-                $protocolObj->outboundTag = 'block';
-                array_push($json->routing->rules, $protocolObj);
-            }
-        }
-
-        if ((int)$server->tls) {
-            $json->inbound->streamSettings->security = 'tls';
-            $tls = (object)[
-                'certificateFile' => '/home/v2ray.crt',
-                'keyFile' => '/home/v2ray.key'
+        $serverService = new ServerService();
+        try {
+            $json = $serverService->getConfig($nodeId, $localPort);
+            $json->poseidon = [
+              'license_key' => (string)config('v2board.server_license'),
             ];
-            $json->inbound->streamSettings->tlsSettings = new \StdClass();
-            $json->inbound->streamSettings->tlsSettings->certificates[0] = $tls;
-        }
 
-        $json->poseidon = [
-          'license_key' => (string)config('v2board.server_license'),
-        ];
-
-        return $this->success($json);
+            return $this->success($json);
+        } catch (\Exception $e) {
+            return $this->error($e->getMessage(), 500);
+        }
     }
 
     protected function verifyToken(Request $request)