File: /var/www/vhosts/creativefellows.nl/slotzeist.creativefellows.nl/config/routes.php
<?php
use App\Action\Preflight\PreflightAction;
use App\Action\Home\HomeAction;
use App\Action\Page\PageAction;
use App\Action\Tour\TourAction;
use App\Action\Post\PostAction;
use App\Action\Availability\AvailabilityAction;
use App\Action\Login\LoginAction;
use App\Action\Login\LogoutAction;
use App\Action\Login\PostLoginAction;
use App\Action\Login\DashboardAction;
use App\Middleware\AuthMiddleware;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Slim\App;
use Slim\Routing\RouteCollectorProxy;
return function (App $app) {
// preflight headers
$app->options('/{routes:.*}', PreflightAction::class);
// home
$app->get('/', HomeAction::class)->setName('home');
// login
$app->get('/login', LoginAction::class)->setName('login');
$app->get('/logoff', LogoutAction::class)->setName('logoff');
$app->post('/login', PostLoginAction::class)->setName('login');
$app->get('/dashboard', DashboardAction::class)->setName('dashboard')->add(AuthMiddleware::class);
$app->get('/dashboard/{date}', DashboardAction::class)->setName('dashboard')->add(AuthMiddleware::class);
$app->get('/dashboard/{page}/{booking_type}', TourAction::class)->setName('dashboard')->add(AuthMiddleware::class);
$app->get('/settings', DashboardAction::class)->setName('dashboard')->add(AuthMiddleware::class);
// tours
$app->get('/{section}', PageAction::class)->setName('page.view');
$app->get('/{section}/{page}', TourAction::class)->setName('exposities.view');
$app->post('/{section}/{page}', PostAction::class)->setName('tour.post');
$app->post('/{section}/{page}/bookings', AvailabilityAction::class)->setName('tour.bookings');
};