X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FHttp%2FControllers%2FEpisodeController.php;h=2fc5f28867dbdb177e8e249ec1c7d0ec800af9d6;hb=35dca1d496a5298daad2fc5f926a9fe400f68dce;hp=4e4eeda8dd943cdc8195dc451e9690bae24bca79;hpb=071885a30f24b980699b337d9cdb65952f8c6c42;p=alttp.git diff --git a/app/Http/Controllers/EpisodeController.php b/app/Http/Controllers/EpisodeController.php index 4e4eeda..2fc5f28 100644 --- a/app/Http/Controllers/EpisodeController.php +++ b/app/Http/Controllers/EpisodeController.php @@ -3,15 +3,28 @@ namespace App\Http\Controllers; use App\Models\Episode; +use Carbon\Carbon; use Illuminate\Http\Request; class EpisodeController extends Controller { public function search(Request $request) { - $episodes = Episode::with('event') - ->where('confirmed', '=', true) - ->where('event.visible', '=', true); + $validatedData = $request->validate([ + 'after' => 'nullable|date', + 'before' => 'nullable|date', + ]); + $after = isset($validatedData['after']) ? $validatedData['after'] : Carbon::now()->sub(2, 'hours'); + $before = isset($validatedData['before']) ? $validatedData['before'] : Carbon::now()->add(1, 'days'); + $episodes = Episode::with(['channels', 'event', 'players', 'players.user']) + ->select('episodes.*') + ->join('events', 'episodes.event_id', '=', 'events.id') + ->where('episodes.confirmed', '=', true) + ->where('episodes.start', '>=', $after) + ->where('episodes.start', '<=', $before) + ->where('events.visible', '=', true) + ->orderBy('episodes.start') + ->limit(1000); return $episodes->get()->toJson(); }