]> git.localhorst.tv Git - alttp.git/blobdiff - app/Http/Controllers/EpisodeController.php
schedule event filter
[alttp.git] / app / Http / Controllers / EpisodeController.php
index c20ad64f63dec5fce037507aa29e68e11bd4015b..6de7d676a496c6b6ee6aaa89ccff01d9540a5b42 100644 (file)
@@ -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 (!empty($validatedData['event'])) {
+                       $episodes = $episodes->whereIn('episodes.event_id', $validatedData['event']);
+               }
                if ($request->user() && $request->user()->isPrivileged()) {
-                       $episodes = $episodes->with('crew');
+                       $episodes = $episodes->with(['crew', 'crew.user']);
                } else {
                        $episodes = $episodes->with([
                                'crew' => function ($query) {
                                        $query->where('confirmed', true);
-                               }
+                               },
+                               'crew.user',
                        ]);
                }
                return $episodes->get()->toJson();