diff --git a/src/app/app.php b/src/app/app.php index 6d2c61d..671b2c1 100644 --- a/src/app/app.php +++ b/src/app/app.php @@ -25,7 +25,9 @@ 'twig.path' => __DIR__ . '/views', )); - $app->mount( '/', new level2\WebControllerProvider() ); + $app->mount( '/', new level2\Level2ControllerProvider() ); + + $app->mount( '/events', new level2\EventsControllerProvider() ); $app->error(function (\Exception $e, $code) use ( $app ) { switch ($code) { diff --git a/src/app/level2/WebControllerProvider.php b/src/app/level2/EventsControllerProvider.php similarity index 69% rename from src/app/level2/WebControllerProvider.php rename to src/app/level2/EventsControllerProvider.php index 700fd28..ad0725c 100644 --- a/src/app/level2/WebControllerProvider.php +++ b/src/app/level2/EventsControllerProvider.php @@ -5,7 +5,7 @@ use Silex\Application; use Silex\ControllerProviderInterface; - class WebControllerProvider implements ControllerProviderInterface { + class EventsControllerProvider implements ControllerProviderInterface { public function connect ( Application $app ) { @@ -13,23 +13,6 @@ $ctr->get('/', function() use ( $app ) { - return $app['twig']->render( - 'level2.twig', - array( - 'page' => 'home', - 'level2' => Level2::getStatus( $app ), - 'events' => array_slice( - Level2::getEvents( $app ), - 0, - 1 - ) - ) - ); - - }); - - $ctr->get('/events/', function() use ( $app ) { - $eventsToReturn = Level2::getEventsByMonth( Level2::getEvents( $app ), date( 'Y' ), @@ -47,7 +30,7 @@ }); - $ctr->get('/events/{year}/{month}', function( $year, $month ) use ( $app ) { + $ctr->get('/{year}/{month}', function( $year, $month ) use ( $app ) { if ( strpos( $month, '.' ) !== false ) { @@ -84,15 +67,7 @@ }); - $ctr->get('/spaceapi', function( ) use ( $app ) { - - return $app->json( - Helpers::spaceAPI( $app ) - ); - - }); - - $ctr->get('/events/{parameter}', function( $parameter ) use ( $app ) { + $ctr->get('/{parameter}', function( $parameter ) use ( $app ) { if ( $parameter == 'json' ) { @@ -100,6 +75,13 @@ Level2::getEvents( $app ) ); + } else if ( $parameter == 'ical' ) { + + header('Content-type: text/calendar; charset=utf-8'); + header('Content-Disposition: attachment; filename=calendar.ics'); + + return file_get_contents( $app[ 'cache' ][ 'calendar' ][ 'ical' ] ); + } else if ( strpos( $parameter, '.' ) !== false ) { $arguments = explode( '.', $parameter ); @@ -135,15 +117,6 @@ }); - $ctr->get('/scrape', function() use ( $app ) { - - Helpers::saveFile ( json_encode( Level2::getJSONCalendar( $app ) ), 'cache/calendar.json' ); - Helpers::saveFile ( file_get_contents( $app[ 'google' ][ 'ical' ] ) , 'cache/calendar.ics' ); - - return true; - - }); - return $ctr; } diff --git a/src/app/level2/Level2ControllerProvider.php b/src/app/level2/Level2ControllerProvider.php new file mode 100644 index 0000000..bcb097a --- /dev/null +++ b/src/app/level2/Level2ControllerProvider.php @@ -0,0 +1,64 @@ +get('/', function() use ( $app ) { + + return $app['twig']->render( + 'level2.twig', + array( + 'page' => 'home', + 'level2' => Level2::getStatus( $app ), + 'events' => array_slice( + Level2::getEvents( $app ), + 0, + 1 + ) + ) + ); + + }); + + $ctr->get('/spaceapi', function( ) use ( $app ) { + + return $app->json( + Helpers::spaceAPI( $app ) + ); + + }); + + $ctr->get('/openingTimes', function( ) use ( $app ) { + + return $app['twig']->render( + 'openingTimes.twig', + array( + 'page' => 'chart', + 'level2' => Level2::getStatus( $app ) + ) + ); + + }); + + $ctr->get('/scrape', function() use ( $app ) { + + Helpers::saveFile ( json_encode( Level2::getJSONCalendar( $app ) ), $app[ 'cache' ][ 'calendar' ][ 'json' ] ); + Helpers::saveFile ( file_get_contents( $app[ 'google' ][ 'ical' ] ) , $app[ 'cache' ][ 'calendar' ][ 'ical' ] ); + + return true; + + }); + + return $ctr; + + } + + }