45 lines
1.4 KiB
PHP
45 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\User;
|
|
use App\Models\UserFlight;
|
|
use App\Http\Resources\UserFlightResource;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Inertia\Inertia;
|
|
|
|
class FlightProfileController extends Controller
|
|
{
|
|
public function profileData(User $user, string $view, ?int $selectedFlightId = null) : array {
|
|
$flights = $user->FlightController()->flights();
|
|
return [
|
|
'user' => $user,
|
|
'canEdit' => auth()->check() && auth()->id() === $user->id,
|
|
'flights' => UserFlightResource::collection($flights)->resolve(),
|
|
'initialView' => $view,
|
|
'selectedFlightId' => $selectedFlightId,
|
|
'isFollowing' => auth()->check() && auth()->user()->isFollowing($user),
|
|
];
|
|
}
|
|
|
|
public function departureBoard(User $user, ?UserFlight $flight = null){
|
|
$profileData = $this->profileData($user, 'board', $flight?->id);
|
|
return Inertia::render('UserProfile', $profileData);
|
|
}
|
|
|
|
public function map(User $user){
|
|
$profileData = $this->profileData($user, 'map');
|
|
return Inertia::render('UserProfile', $profileData);
|
|
}
|
|
|
|
public function boardingPasses(User $user){
|
|
$profileData = $this->profileData($user, 'passes');
|
|
return Inertia::render('UserProfile', $profileData);
|
|
}
|
|
|
|
public function view(User $user)
|
|
{
|
|
return $this->departureBoard($user);
|
|
}
|
|
}
|