From ca4795e9bc4ef9de0b0a6b728e4277c1aedb0b44 Mon Sep 17 00:00:00 2001 From: James Mowatt Date: Sun, 11 Sep 2016 16:50:12 +0100 Subject: [PATCH] Add Route and Controller for ICS download Provide a route and method for people to download an ICS file --- app/Http/Controllers/EventViewController.php | 12 ++++++++++++ app/Http/routes.php | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/app/Http/Controllers/EventViewController.php b/app/Http/Controllers/EventViewController.php index f63ba777..48be7fff 100644 --- a/app/Http/Controllers/EventViewController.php +++ b/app/Http/Controllers/EventViewController.php @@ -124,4 +124,16 @@ class EventViewController extends Controller 'message' => 'Message Successfully Sent', ]); } + + public function showCalendarIcs(Request $request, $event_id) + { + $event = Event::findOrFail($event_id); + + $icsContent = $event->getIcsForEvent(); + + return response()->make($icsContent, 200, [ + 'Content-Type' => 'application/octet-stream', + 'Content-Disposition' => 'attachment; filename="event.ics' + ]); + } } diff --git a/app/Http/routes.php b/app/Http/routes.php index 5bfb548a..a364c48f 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -116,6 +116,11 @@ Route::group(['prefix' => 'e'], function () { 'uses' => 'EventViewEmbeddedController@showEmbeddedEvent', ]); + Route::get('/{event_id}/calendar.ics', [ + 'as' => 'downloadCalendarIcs', + 'uses' => 'EventViewController@showCalendarIcs', + ]); + Route::get('/{event_id}/{event_slug?}', [ 'as' => 'showEventPage', 'uses' => 'EventViewController@showEventHome',