]> git.localhorst.tv Git - alttp.git/blob - app/Http/Controllers/EventController.php
WIP event filter
[alttp.git] / app / Http / Controllers / EventController.php
1 <?php
2
3 namespace App\Http\Controllers;
4
5 use App\Models\Event;
6 use Carbon\Carbon;
7 use Illuminate\Http\Request;
8
9 class EventController extends Controller
10 {
11
12         public function search(Request $request) {
13                 $validatedData = $request->validate([
14                         'after' => 'nullable|date',
15                         'before' => 'nullable|date',
16                 ]);
17                 $events = Event::where('visible', '=', true);
18                 if (isset($validatedData['before'])) {
19                         $events = $events->where(function ($query) use ($validatedData) {
20                                 $query->whereNull('start');
21                                 $query->orWhere('start', '<', $validatedData['before']);
22                         });
23                 }
24                 if (isset($validatedData['after'])) {
25                         $events = $events->where(function ($query) use ($validatedData) {
26                                 $query->whereNull('end');
27                                 $query->orWhere('end', '>', $validatedData['after']);
28                         });
29                 }
30                 return $events->get()->toJson();
31         }
32
33         public function single(Request $request, Event $event) {
34                 $this->authorize('view', $event);
35                 return $event->toJson();
36         }
37
38 }