X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FHttp%2FControllers%2FEpisodeController.php;h=6de7d676a496c6b6ee6aaa89ccff01d9540a5b42;hb=9f54b6e8fde827556cf858818090a1dfc829624c;hp=b59ea18cbc501265265e94626aabd97996bab9c5;hpb=e2af94795e9d8e8a2eb8c272201b4e54ebb130f0;p=alttp.git diff --git a/app/Http/Controllers/EpisodeController.php b/app/Http/Controllers/EpisodeController.php index b59ea18..6de7d67 100644 --- a/app/Http/Controllers/EpisodeController.php +++ b/app/Http/Controllers/EpisodeController.php @@ -13,6 +13,8 @@ class EpisodeController extends Controller $validatedData = $request->validate([ 'after' => 'nullable|date', 'before' => 'nullable|date', + 'event' => 'nullable|array', + 'event.*' => 'numeric', ]); $after = isset($validatedData['after']) ? $validatedData['after'] : Carbon::now()->sub(2, 'hours'); $before = isset($validatedData['before']) ? $validatedData['before'] : Carbon::now()->add(1, 'days'); @@ -25,13 +27,17 @@ class EpisodeController extends Controller ->where('events.visible', '=', true) ->orderBy('episodes.start') ->limit(1000); - if ($request->user() && $request->user()->isAdmin()) { - $episodes = $episodes->with('crew'); + if (!empty($validatedData['event'])) { + $episodes = $episodes->whereIn('episodes.event_id', $validatedData['event']); + } + if ($request->user() && $request->user()->isPrivileged()) { + $episodes = $episodes->with(['crew', 'crew.user']); } else { $episodes = $episodes->with([ 'crew' => function ($query) { $query->where('confirmed', true); - } + }, + 'crew.user', ]); } return $episodes->get()->toJson();