diff options
author | floppydiskette <git@diskfloppy.me> | 2024-08-08 15:35:48 +0100 |
---|---|---|
committer | floppydiskette <git@diskfloppy.me> | 2024-08-08 15:35:48 +0100 |
commit | 74bca7ac803aeea3d5091344b99520687e3a3bd1 (patch) | |
tree | 8a63a2341303daac4ac621f8f4962a81d684e88a /app/View/Components/Weather.php | |
parent | 9900446d9590024c34f55a45055776a396fb694e (diff) | |
parent | 14d3ed966bbafbcb01182df26fbbe1d5a211f4c2 (diff) |
Merge branch 'redesign'
Diffstat (limited to 'app/View/Components/Weather.php')
-rw-r--r-- | app/View/Components/Weather.php | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/app/View/Components/Weather.php b/app/View/Components/Weather.php new file mode 100644 index 0000000..69be9fd --- /dev/null +++ b/app/View/Components/Weather.php @@ -0,0 +1,44 @@ +<?php + +namespace App\View\Components; + +use Closure; +use Illuminate\Contracts\View\View; +use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Config; +use Illuminate\Support\Facades\Http; +use Illuminate\View\Component; + +class Weather extends Component +{ + /** + * Create a new component instance. + */ + public function __construct() + { + // + } + + public function getWeatherData(): mixed { + // If it's already cached just return that + if (Cache::has('weather_data')) { + 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; + } + + /** + * Get the view / contents that represent the component. + */ + public function render(): View|Closure|string + { + return view('components.weather', [ + 'conditions' => $this->getWeatherData(), + ]); + } +} |