Files
theme-park-app/app/Http/Controllers/ThemeParkController.php
2024-08-20 21:08:23 +02:00

39 lines
1017 B
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Services\PhantasialandApi;
use App\Models\ThemeParkUser;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Foundation\Application;
class ThemeParkController extends Controller
{
function __construct(readonly PhantasialandApi $api, readonly ThemeParkUser $user)
{
}
public function index(): Factory|View|Application
{
$pois = $this->api->getPointsOfInterest();
$queueTimes = $this->api->getLiveQueueTimes();
$queueTimes = $queueTimes->mapWithKeys(function ($queueTime) {
return [$queueTime["poiId"] => $queueTime];
});
$pois = $pois->filter(function ($poi) use ($queueTimes) {
return $queueTimes->has($poi->id);
})->map(function ($poi) use ($queueTimes) {
$poi->setInfo($queueTimes[$poi->id]);
return $poi;
});
return view('theme-park', [
'pois' => $pois
]);
}
}