From 94d7e13c6ac5fc608b90ae6039d5b222bb1b54ad Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Sun, 5 Feb 2023 20:44:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=20=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E6=8A=9B=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Module/ModuleController.php | 7 +------ app/Models/Module.php | 20 ++++++++++++++++++- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Module/ModuleController.php b/app/Http/Controllers/Module/ModuleController.php index e8f469c..abdec46 100644 --- a/app/Http/Controllers/Module/ModuleController.php +++ b/app/Http/Controllers/Module/ModuleController.php @@ -26,12 +26,7 @@ public function call(Request $request, Module $module): Response|JsonResponse $method = Str::lower($request->method()); - try { - $response = $module->request($method, $path, $request->all()); - } catch (ConnectException $e) { - Log::error('在执行 call ' . $method . ' ' . $path . ' 时发生错误: ' . $e->getMessage()); - return $this->serviceUnavailable(); - } + $response = $module->request($method, $path, $request->all()); if ($response['json'] === null && $response['body'] !== null) { return response($response['body'], $response['status']); diff --git a/app/Models/Module.php b/app/Models/Module.php index 4d135f9..602cdd1 100644 --- a/app/Models/Module.php +++ b/app/Models/Module.php @@ -8,6 +8,7 @@ use GuzzleHttp\Exception\ConnectException; use Illuminate\Database\Eloquent\Builder; use Illuminate\Foundation\Auth\User as Authenticatable; +use Illuminate\Http\Client\ConnectionException; use Illuminate\Http\Client\PendingRequest; use Illuminate\Http\Client\Response; use Illuminate\Support\Facades\Cache; @@ -113,9 +114,26 @@ private function getResponse(Response $response): array ]; } + /** + * @param $method + * @param $path + * @param $requests + * + * @return array + */ public function request($method, $path, $requests): array { - return $this->baseRequest($method, "functions/$path", $requests); + try { + return $this->baseRequest($method, "functions/$path", $requests); + } catch (ConnectException|ConnectionException $e) { + Log::error('在执行 call ' . $method . ' ' . $path . ' 时发生错误: ' . $e->getMessage()); + return [ + 'body' => null, + 'json' => null, + 'status' => 502, + 'success' => false, + ]; + } } public function baseRequest($method, $path, $requests = []): array