aboutsummaryrefslogtreecommitdiff
path: root/app/View/Components
diff options
context:
space:
mode:
authorfloppydiskette <floppydisk@hyprcat.net>2024-08-31 00:47:01 +0100
committerfloppydiskette <floppydisk@hyprcat.net>2024-08-31 00:47:01 +0100
commita715ae58afa15a98006e2271522bef5a00ca071f (patch)
tree5e64ac5ac9e30fd14b96f8e88d3f449fda223ac1 /app/View/Components
parent97d8f4447d0839d3f251a7dfc2f5f123c36c4d5e (diff)
Handle any errors if unable to get presence or weather data
Diffstat (limited to 'app/View/Components')
-rw-r--r--app/View/Components/DiscordStatus.php4
-rw-r--r--app/View/Components/Weather.php16
2 files changed, 14 insertions, 6 deletions
diff --git a/app/View/Components/DiscordStatus.php b/app/View/Components/DiscordStatus.php
index fac06ae..3ad3a3b 100644
--- a/app/View/Components/DiscordStatus.php
+++ b/app/View/Components/DiscordStatus.php
@@ -31,13 +31,15 @@ class DiscordStatus extends Component
$response = Http::get('https://api.lanyard.rest/v1/users/' . Config::get('services.lanyard.user_id'));
$data = $response->json();
+ if (!isset($data["data"])) return null;
$presence = $data["data"];
Cache::put('discord_presence', $presence, now()->addSeconds(60));
return $presence;
}
- public function getOnlineStatus(): array {
+ public function getOnlineStatus(): ?array {
$presence = $this->getDiscordPresence();
+ if ($presence == null) return null;
return match ($presence["discord_status"]) {
"online", "dnd" => [
"text" => "online",
diff --git a/app/View/Components/Weather.php b/app/View/Components/Weather.php
index 69be9fd..dcf3ff7 100644
--- a/app/View/Components/Weather.php
+++ b/app/View/Components/Weather.php
@@ -3,6 +3,7 @@
namespace App\View\Components;
use Closure;
+use Exception;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Config;
@@ -25,11 +26,16 @@ class Weather extends Component
return Cache::get('weather_data');
}
- $response = Http::get('http://'. Config::get('services.weatherlink') . '/v1/current_conditions');
- $data = $response->json();
- $conditions = $data["data"]["conditions"];
- Cache::put('weather_data', $conditions, now()->addSeconds(60));
- return $conditions;
+ try {
+ $response = Http::get('http://' . Config::get('services.weatherlink') . '/v1/current_conditions');
+ $data = $response->json();
+ $conditions = $data["data"]["conditions"];
+ Cache::put('weather_data', $conditions, now()->addSeconds(60));
+ return $conditions;
+ } catch (Exception $ex) {
+ return null;
+ }
+
}
/**