From d09004df1712b4c56d5d3eb57a1d68f512dfe2b0 Mon Sep 17 00:00:00 2001 From: IceToast Date: Wed, 22 Dec 2021 15:11:13 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=94=92=EF=B8=8F=20Added=20error?= =?UTF-8?q?=20handling=20on=20server=20attribute=20fetching?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Classes/Pterodactyl.php | 70 ++++++++++++++++++++--- app/Http/Controllers/ServerController.php | 2 +- 2 files changed, 62 insertions(+), 10 deletions(-) diff --git a/app/Classes/Pterodactyl.php b/app/Classes/Pterodactyl.php index 710fbb12..0abe05f7 100644 --- a/app/Classes/Pterodactyl.php +++ b/app/Classes/Pterodactyl.php @@ -48,7 +48,11 @@ class Pterodactyl */ public static function getEggs(Nest $nest) { - $response = self::client()->get("/application/nests/{$nest->id}/eggs?include=nest,variables&per_page=" . self::PER_PAGE); + try { + $response = self::client()->get("/application/nests/{$nest->id}/eggs?include=nest,variables&per_page=" . self::PER_PAGE); + } catch (Exception $e) { + throw self::getException(); + } if ($response->failed()) throw self::getException(); return $response->json()['data']; } @@ -59,7 +63,11 @@ class Pterodactyl */ public static function getNodes() { - $response = self::client()->get('/application/nodes?per_page=' . self::PER_PAGE); + try { + $response = self::client()->get('/application/nodes?per_page=' . self::PER_PAGE); + } catch (Exception $e) { + throw self::getException(); + } if ($response->failed()) throw self::getException(); return $response->json()['data']; } @@ -70,7 +78,11 @@ class Pterodactyl */ public static function getNests() { - $response = self::client()->get('/application/nests?per_page=' . self::PER_PAGE); + try { + $response = self::client()->get('/application/nests?per_page=' . self::PER_PAGE); + } catch (Exception $e) { + throw self::getException(); + } if ($response->failed()) throw self::getException(); return $response->json()['data']; } @@ -81,8 +93,13 @@ class Pterodactyl */ public static function getLocations() { - $response = self::client()->get('/application/locations?per_page=' . self::PER_PAGE); + try { + $response = self::client()->get('/application/locations?per_page=' . self::PER_PAGE); + } catch (Exception $e) { + throw self::getException(); + } if ($response->failed()) throw self::getException(); + return $response->json()['data']; } @@ -125,8 +142,13 @@ class Pterodactyl public static function getAllocations(Node $node) { $per_page = Configuration::getValueByKey('ALLOCATION_LIMIT', 200); - $response = self::client()->get("/application/nodes/{$node->id}/allocations?per_page={$per_page}"); + try { + $response = self::client()->get("/application/nodes/{$node->id}/allocations?per_page={$per_page}"); + } catch (Exception $e) { + throw self::getException(); + } if ($response->failed()) throw self::getException(); + return $response->json(); } @@ -176,15 +198,25 @@ class Pterodactyl public static function suspendServer(Server $server) { - $response = self::client()->post("/application/servers/$server->pterodactyl_id/suspend"); + try { + $response = self::client()->post("/application/servers/$server->pterodactyl_id/suspend"); + } catch (Exception $e) { + throw self::getException(); + } if ($response->failed()) throw self::getException(); + return $response; } public static function unSuspendServer(Server $server) { - $response = self::client()->post("/application/servers/$server->pterodactyl_id/unsuspend"); + try { + $response = self::client()->post("/application/servers/$server->pterodactyl_id/unsuspend"); + } catch (Exception $e) { + throw self::getException(); + } if ($response->failed()) throw self::getException(); + return $response; } @@ -195,9 +227,29 @@ class Pterodactyl */ public function getUser(int $pterodactylId) { - $response = self::client()->get("/application/users/{$pterodactylId}"); + try { + $response = self::client()->get("/application/users/{$pterodactylId}"); + } catch (Exception $e) { + throw self::getException(); + } + if ($response->failed()) throw self::getException(); - if ($response->failed()) return $response->json(); + return $response->json()['attributes']; + } + + /** + * Get serverAttributes by pterodactyl id + * @param int $pterodactylId + * @return mixed + */ + public static function getServerAttributes(string $pterodactylId) + { + try { + $response = self::client()->get("/application/servers/{$pterodactylId}?include=egg,nest,location"); + } catch (Exception $e) { + throw self::getException(); + } + if ($response->failed()) throw self::getException(); return $response->json()['attributes']; } } diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php index acfc47a2..9d552cb7 100644 --- a/app/Http/Controllers/ServerController.php +++ b/app/Http/Controllers/ServerController.php @@ -30,7 +30,7 @@ class ServerController extends Controller foreach ($servers as $server) { //Get server infos from ptero - $serverAttributes = Pterodactyl::client()->get('/application/servers/' . $server->pterodactyl_id . '?include=egg,nest,location')->json()['attributes']; + $serverAttributes = Pterodactyl::getServerAttributes($server->pterodactyl_id); $serverRelationships = $serverAttributes['relationships']; $serverLocationAttributes = $serverRelationships['location']['attributes'];