3 namespace App\Http\Controllers;
7 use Illuminate\Http\Request;
9 class EventController extends Controller
12 public function search(Request $request) {
13 $validatedData = $request->validate([
14 'after' => 'nullable|date',
15 'before' => 'nullable|date',
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']);
24 if (isset($validatedData['after'])) {
25 $events = $events->where(function ($query) use ($validatedData) {
26 $query->whereNull('end');
27 $query->orWhere('end', '>', $validatedData['after']);
30 return $events->get()->toJson();
33 public function single(Request $request, Event $event) {
34 $this->authorize('view', $event);
35 return $event->toJson();