]> git.localhorst.tv Git - alttp.git/blob - app/Http/Controllers/EpisodeController.php
d4ca78d44b27bf3b6e5b02cc9485edc2ca7853c0
[alttp.git] / app / Http / Controllers / EpisodeController.php
1 <?php
2
3 namespace App\Http\Controllers;
4
5 use App\Models\Episode;
6 use Carbon\Carbon;
7 use Illuminate\Http\Request;
8
9 class EpisodeController extends Controller
10 {
11
12         public function search(Request $request) {
13                 $validatedData = $request->validate([
14                         'after' => 'nullable|date',
15                         'before' => 'nullable|date',
16                 ]);
17                 $after = isset($validatedData['after']) ? $validatedData['after'] : Carbon::now()->sub(2, 'hours');
18                 $before = isset($validatedData['before']) ? $validatedData['before'] : Carbon::now()->add(1, 'days');
19                 $episodes = Episode::with(['event', 'players', 'players.user'])
20                         ->select('episodes.*')
21                         ->join('events', 'episodes.event_id', '=', 'events.id')
22                         ->where('episodes.confirmed', '=', true)
23                         ->where('episodes.start', '>=', $after)
24                         ->where('episodes.start', '<=', $before)
25                         ->where('events.visible', '=', true)
26                         ->limit(1000);
27                 return $episodes->get()->toJson();
28         }
29
30         public function single(Request $request, Episode $episode) {
31                 $this->authorize('view', $episode);
32                 return $episode->toJson();
33         }
34
35 }