diff --git a/components/EventManager.php b/components/EventManager.php index db9f6b8..79c63cd 100644 --- a/components/EventManager.php +++ b/components/EventManager.php @@ -149,8 +149,9 @@ abstract class EventManager extends ComponentBase return; } - $this->eventMeta = data_get(app(FetchAllEvents::class)->run(), 'meta', []); - $this->events = $this->page['events'] = collect(app(FetchAllEvents::class)->run()['data']); + $eventData = app(FetchAllEvents::class)->run(); + $this->eventMeta = data_get($eventData, 'meta', []); + $this->events = $this->page['events'] = collect($eventData['data']); $this->event = $this->page['event'] = $this->events->first(fn ($event) => $event['slug'] == $eventSlug); $this->currentUrl = url()->current(); } diff --git a/support/FetchAllEvents.php b/support/FetchAllEvents.php index b610b2f..646adc0 100644 --- a/support/FetchAllEvents.php +++ b/support/FetchAllEvents.php @@ -3,12 +3,15 @@ namespace Silva\Adrema\Support; use Illuminate\Support\Collection; +use Cache; class FetchAllEvents { public function run(): ?Collection { - $events = app(Proxy::class)->run('/api/form'); + $events = Cache::remember('adrema-all-events', 3600, function () { + return app(Proxy::class)->run('/api/form'); + }); if (!$events) { return null;