39 lines
1017 B
PHP
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
|
|
]);
|
|
}
|
|
}
|