X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FHttp%2FControllers%2FEventController.php;h=a0dce45abb908bbd3202753f57b36f6957ed6af6;hb=e10222af705e3475fcea6e0b17d1c9984a62db26;hp=eb742399dab1d1ba9dfd1e8c172ed8e483bda502;hpb=071885a30f24b980699b337d9cdb65952f8c6c42;p=alttp.git diff --git a/app/Http/Controllers/EventController.php b/app/Http/Controllers/EventController.php index eb74239..a0dce45 100644 --- a/app/Http/Controllers/EventController.php +++ b/app/Http/Controllers/EventController.php @@ -3,18 +3,36 @@ namespace App\Http\Controllers; use App\Models\Event; +use Carbon\Carbon; use Illuminate\Http\Request; class EventController extends Controller { public function search(Request $request) { + $validatedData = $request->validate([ + 'after' => 'nullable|date', + 'before' => 'nullable|date', + ]); $events = Event::where('visible', '=', true); + if (isset($validatedData['before'])) { + $events = $events->where(function ($query) use ($validatedData) { + $query->whereNull('start'); + $query->orWhere('start', '<', $validatedData['before']); + }); + } + if (isset($validatedData['after'])) { + $events = $events->where(function ($query) use ($validatedData) { + $query->whereNull('end'); + $query->orWhere('end', '>', $validatedData['after']); + }); + } return $events->get()->toJson(); } public function single(Request $request, Event $event) { $this->authorize('view', $event); + $event->load('description'); return $event->toJson(); }