HEX
Server: Apache
System: Linux v38079.2is.nl 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: democfellows (10015)
PHP: 8.1.34
Disabled: opcache_get_status
Upload Files
File: /var/www/vhosts/creativefellows.nl/mygeomil.creativefellows.nl/12052025/config/routes.php
<?php

use App\Action\Preflight\PreflightAction;

use App\Action\Login\LoginAction;
use App\Action\Login\LogoutAction;
use App\Action\Login\PostLoginAction;
use App\Action\View\PageAction;

use App\Action\Article\ListArticleCategoryAction;
use App\Action\Article\SearchArticleAction;
use App\Action\Article\SearchArticleCategoryAction;

use App\Action\Cart\CartPostAction;
use App\Action\Cart\CartDeleteAction;
use App\Action\Cart\CartPatchAction;
use App\Action\Cart\CartViewAction;

use App\Action\Order\OrderPostAction;

use App\Action\Addressbook\AddressbookPostAction;

// ADMIN
use App\Action\Admin\AdminViewAction;
use App\Action\Admin\AdminViewDetailAction;
use App\Action\Admin\AdminViewGroupAction;

	// POST
	use App\Action\Admin\Post\PostUserAction;
	use App\Action\Admin\Post\PostGroupAction;
	use App\Action\Admin\Post\PostSettingAction;

	// DELETE
	use App\Action\Admin\Delete\DeleteGroupAction;
	use App\Action\Admin\Delete\DeleteUserAction;
	use App\Action\Admin\Delete\DeleteArticleAction;

	// PATCH
	use App\Action\Admin\Patch\PatchGroupAction;
	use App\Action\Admin\Patch\PatchArticleAction;
	use App\Action\Admin\Patch\PatchUserAction;
	
	// GET
	use App\Action\Admin\Get\GetGroupAction;
	use App\Action\Admin\Get\GetUserAction;
	use App\Action\Admin\Get\GetArticleAction;

	use App\Action\Admin\Client\LoginAdminUserAction;
	use App\Action\Admin\Client\UserInviteAction;
	use App\Action\Admin\Client\DisableTourAction;
	


use App\Middleware\AuthMiddleware;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Slim\App;
use Slim\Interfaces\RouteCollectorProxyInterface as Group;


return function (App $app) {

  	// preflight headers
	//$app->options('/{routes:.*}', PreflightAction::class);
	
	
	// login
	$app->get('/', LoginAction::class)->setName('login');	
	$app->get('/logoff', LogoutAction::class)->setName('logoff');	
	$app->post('/login', PostLoginAction::class)->setName('login');	
	
	
	// Reset password
	$app->get('/reset', \App\Action\Login\ResetAction::class)->setName('reset');	
	$app->get('/get-started', \App\Action\Login\ResetAction::class)->setName('get-started');	
	$app->get('/reset/{key}',\App\Action\Login\ResetFormAction::class)->setName("reset.new");
	$app->post('/reset', \App\Action\Login\PostResetAction::class)->setName('reset');	
	$app->get('/reset/{username}/{hash}', \App\Action\Login\RedirectPostResetAction::class)->setName('reset.redirect');	
	$app->patch('/reset',\App\Action\Login\PatchPasswordAction::class)->setName("password.patch");
	
	
	// Disabled guided tour
	$app->any('/disable-tour/{userid:[0-9]+}', DisableTourAction::class)->setName('dashboard.tour')->add(AuthMiddleware::class);


	// Automated survey import action
	$app->get('/survey/import-invites/{hash}', \App\Action\Survey\SurveyImportAction::class)->setName("survey.import");
	//$app->get('/survey/import-csv/{filename}', \App\Action\Survey\SurveyCsvImportAction::class)->setName("survey.csvimport");
	
	
	// Survey
	$app->group('/survey', function (Group $survey) {
		
		//$survey->get('/import-invites/{hash}', \App\Action\Survey\SurveyImportAction::class)->setName("survey.import");
		//$survey->get('/invite/{hash}', \App\Action\Survey\SurveyInviteAction::class)->setName('survey.invite');		
		$survey->get('/{type}/{hash}', \App\Action\Survey\SurveyAction::class)->setName('survey.view');
		$survey->post('/{type}/{hash}', \App\Action\Survey\SurveyPostAction::class)->setName('survey.post');
		$survey->get('/completed', \App\Action\Survey\SurveyCompleteAction::class)->setName('survey.complete');
		
	});
	
	// Survey
	$app->group('/status', function (Group $status) {

		$status->get('', \App\Action\Status\ViewProjectStatusAction::class)->setName("status.get");
		
		$status->get('/import/{hash}', \App\Action\Status\StatusImportAction::class)->setName("status.import");
		//$status->get('/invite/{hash}', \App\Action\Survey\SurveyInviteAction::class)->setName('survey.invite');		
		//$status->get('/{type}/{hash}', \App\Action\Survey\SurveyAction::class)->setName('survey.view');
		//$status->post('/{type}/{hash}', \App\Action\Survey\SurveyPostAction::class)->setName('survey.post');
		//$status->get('/completed', \App\Action\Survey\SurveyCompleteAction::class)->setName('survey.complete');
		
	});
	
	
	// campagin monitor automation
	//$app->group('/campaign-monitor', function (Group $survey) {
		// send transactional email
		//$survey->get('/survey-invite/{hash}', \App\Action\Survey\SurveyTestAction::class)->setName('survey.complete'); 
		//$survey->get('/invite', \App\Action\Survey\TextMailAction::class)->setName('survey.complete'); 		
		// add to list and automation
		//$survey->get('/list/post', \App\Action\Survey\SurveyAddlistAction::class)->setName('survey.add'); 
	//});
	
	
	// Notifications
	$app->group('/notifications', function (Group $group) {
		
		$group->get('', \App\Action\Files\ListNewFilesAction::class)->setName('files.list');
		$group->get('/{client}', \App\Action\Files\ClientFilesAction::class)->setName('files.client.get');
		$group->post('/{client}', \App\Action\Files\NotifyEmailAction::class)->setName('files.client.post');
		$group->get('/download/{folder}/{file}', \App\Action\Files\ViewFileAction::class)->setName('files.view');
		
	})->add(AuthMiddleware::class);
	
	
	
	// Dashboard
	$app->group('/dashboard', function (Group $group) {
		
		$group->get('', \App\Action\Dashboard\DashboardAction::class)->setName('dashboard');
	    $group->post('/order/{page:[0-9]+}', \App\Action\Dashboard\DashboardOrderAction::class)->setName('dashboard.view.orderpage');
	 	$group->post('/service/{page:[0-9]+}', \App\Action\Dashboard\DashboardServiceAction::class)->setName('dashboard.view.servicepage');
		$group->post('/view/{id}', \App\Action\Order\OrderGetAction::class)->setName('dashboard.order.get');
		
	})->add(AuthMiddleware::class);
	
	
	// Tour
	$app->get('/tour', \App\Action\Dashboard\DashboardTourAction::class)->setName('dashboard');
	
	
	// FAQ
	$app->get('/faq', \App\Action\Faq\ListFaqAction::class)->setName('faq.view')->add(AuthMiddleware::class);
	
	
	// Articles
    $app->group('/articles', function (Group $group) {
      	
		$group->get('', \App\Action\Article\ListArticleAction::class)->setName('articles.view');
        $group->get('/{page:[0-9]+}', \App\Action\Article\ListArticleAction::class)->setName('articles.viewpage');
        $group->get('/{category}[/{page:[0-9]+}]', ListArticleCategoryAction::class)->setName('articles.viewcategory');
        $group->get('/{category}/{child}[/{page:[0-9]+}]', ListArticleCategoryAction::class)->setName('articles.viewcategory.child');
		
		$group->group('/search/', function (Group $search){
	        $search->post('{search}', SearchArticleAction::class)->setName('articles.search');
	        $search->post('{category}/{search}', SearchArticleCategoryAction::class)->setName('articles.search');
		});
  
    })->add(AuthMiddleware::class);
	
	
	// service
    $app->group('/service', function (Group $group) {
		
		$group->get('', \App\Action\Service\ServiceFormAction::class)->setName('service.view.form');		
		$group->get('/{installation}',  \App\Action\Service\ServiceAction::class)->setName('service.view.installation');	
		$group->patch('/{id}/name',  \App\Action\Service\ServicePatchNameAction::class)->setName('service.postname.installation');	

		$group->any('/occupancy/{date}', \App\Action\Service\ServiceOccupancyAction::class)->setName('service.occupancy.get');
		$group->post('/warranty/{installation}', \App\Action\Service\ServiceWarrantyAction::class)->setName('service.warranty');
		$group->post('/request/{id}', \App\Action\Service\ServiceRequestAction::class)->setName('service.request');
		$group->get('/request/{id}', \App\Action\Service\ServicePatchAction::class)->setName('service.patch');
		$group->delete('/saved/{id}', \App\Action\Service\ServiceDeleteAction::class)->setName('service.delete');
		$group->post('/{machine}/{service}', \App\Action\Service\ServicePriceAction::class)->setName('service.view.price');
		$group->post('/complete', \App\Action\Service\ServiceConfirmAction::class)->setName('service.confirm');
		$group->post('/submit', \App\Action\Service\ServicePostAction::class)->setName('service.submit');
		$group->post('/save', \App\Action\Service\ServiceSaveAction::class)->setName('service.save');
		
	})->add(AuthMiddleware::class);
		
	
	// geomiles
    $app->group('/cpt-miles', function (Group $group) {
		
		$group->get('', \App\Action\Goodies\ListGoodiesAction::class)->setName('cpt-miles.list');
		$group->post('/{id}/{quantity}', \App\Action\Goodies\GoodyCartPostAction::class)->setName('cpt-miles.cart.post');
		$group->patch('/{id}/{quantity}', \App\Action\Goodies\GoodyCartPatchAction::class)->setName('cpt-miles.cart.patch');

		$group->delete('/clear', \App\Action\Goodies\GoodyCartClearAction::class)->setName('cpt-miles.cart.empty');		
		$group->delete('/{id}', \App\Action\Goodies\GoodyCartDeleteAction::class)->setName('cpt-miles.cart.delete');
		
		$group->get('/cart', \App\Action\Goodies\GoodyCartViewAction::class)->setName('cpt-miles.cart.confirm');		
		$group->post('/cart',  \App\Action\Goodies\GoodyCartCompleteAction::class)->setName('cpt-miles.cart.post');
		
		$group->get('/{section}', PageAction::class)->setName('cpt-miles.complete');
				
	})->add(AuthMiddleware::class);
		
		
		
	// cart
    $app->group('/cart', function (Group $group) {
        
		$group->get('', CartViewAction::class)->setName('cart.view');
		$group->post('/save', \App\Action\Order\OrderSaveAction::class)->setName('order.save');
		$group->post('/saved/{saved_id}', \App\Action\Order\OrderLoadAction::class)->setName('order.save');
		$group->get('/saved/{saved_id}', \App\Action\Order\OrderGetSavedAction::class)->setName('order.save');
		$group->delete('/saved/{saved_id}', \App\Action\Order\OrderDeleteSavedAction::class)->setName('order.save');
		$group->delete('/empty', \App\Action\Cart\CartEmptyAction::class)->setName('cart.empty');		
		$group->post('/{id}/{quantity}', CartPostAction::class)->setName('cart.post');
		$group->patch('/{id}/{quantity}', CartPatchAction::class)->setName('cart.patch');
		$group->delete('/{id}', CartDeleteAction::class)->setName('cart.delete');
		$group->post('', OrderPostAction::class)->setName('order.post');
		$group->get('/{section}', PageAction::class)->setName('order.complete');
		
		
			
	})->add(AuthMiddleware::class);


	// other
	$app->get('/knowledge-center', \App\Action\Knowledge\KnowledgeDashboardAction::class)->setName('knowledge-center.dashboard')->add(AuthMiddleware::class);
	$app->get('/knowledge-center/{page}', \App\Action\Knowledge\KnowledgeAction::class)->setName('knowledge-center.view')->add(AuthMiddleware::class);
	
	
	// admin
	$app->group('/admin', function (Group $group) {
		
		// get		
		$group->get('[/{setting}]', AdminViewAction::class)->setName('admin.view');
		
		// article groups
		$group->post('/article-group', PostGroupAction::class)->setName('admin.post.group');
		$group->get('/article-group/{id}', GetGroupAction::class)->setName('admin.get.group');			
		$group->patch('/article-group/{id}', PatchGroupAction::class)->setName('admin.patch.group');
		$group->delete('/article-group/{id}', DeleteGroupAction::class)->setName('admin.delete.group');
		$group->post('/article-group/article', \App\Action\Admin\Post\PostGroupArticleAction::class)->setName('admin.post.group.article');
		
		// sorting position
		$group->post('/article-group/sort', \App\Action\Admin\Post\SortGroupAction::class)->setName('admin.sort.group');
		$group->post('/article-group/articles/sort', \App\Action\Admin\Post\SortGroupArticlesAction::class)->setName('admin.sort.group.articles');
			
		// occupancy
	    $group->group('/occupancy', function (Group $occupancy){
			$occupancy->post('', \App\Action\Admin\Occupancy\PostOccupancyAction::class)->setName('admin.post.accupancy');
			$occupancy->delete('/{id}', \App\Action\Admin\Occupancy\DeleteOccupancyAction::class)->setName('admin.delete.accupancy');
		});
		
		
		// faq
	    $group->group('/faq', function (Group $faq){
			$faq->post('', \App\Action\Admin\Faq\PostFaqAction::class)->setName('admin.post.faq');			
			$faq->delete('/{id}', \App\Action\Admin\Faq\DeleteFaqAction::class)->setName('admin.delete.faq');
			$faq->get('/{id}', \App\Action\Admin\Faq\GetFaqAction::class)->setName('admin.get.faq');
			$faq->patch('/{id}', \App\Action\Admin\Faq\PatchFaqAction::class)->setName('admin.patch.faq');
			$faq->post('/sort', \App\Action\Admin\Faq\SortFaqAction::class)->setName('admin.sort.faq');
		});
		
		// goodies
	    $group->group('/goodies', function (Group $goodies){
			$goodies->post('', \App\Action\Admin\Goody\PostGoodyAction::class)->setName('admin.post.goody');			
			$goodies->delete('/{id}', \App\Action\Admin\Goody\DeleteGoodyAction::class)->setName('admin.delete.goody');
			$goodies->get('/{id}', \App\Action\Admin\Goody\GetGoodyAction::class)->setName('admin.get.goody');
			$goodies->patch('/{id}', \App\Action\Admin\Goody\PatchGoodyAction::class)->setName('admin.patch.goody');
			$goodies->post('/sort', \App\Action\Admin\Goody\SortGoodyAction::class)->setName('admin.sort.goody');
		});
		
				
		// user
	    $group->group('/user', function (Group $user){
			$user->post('', PostUserAction::class)->setName('admin.post.user');
			$user->delete('/{id}', DeleteUserAction::class)->setName('admin.delete.user');
			$user->get('/{id}', GetUserAction::class)->setName('admin.get.user');
			$user->patch('/{id}', PatchUserAction::class)->setName('admin.get.user');
			$user->get('/login/{id}/{hash}', LoginAdminUserAction::class)->setName('admin.login.user');
			$user->get('/invite/{id}', UserInviteAction::class)->setName('admin.invite.user');
			
		});
							
		// articles
	    $group->group('/articles', function (Group $article){
			$article->post('', \App\Action\Admin\Article\PostArticleAction::class)->setName('admin.post.article');
			$article->get('/{id:[0-9]+}', GetArticleAction::class)->setName('admin.view.article');
			$article->delete('/{id}', DeleteArticleAction::class)->setName('admin.delete.article');
			$article->patch('/{id}', PatchArticleAction::class)->setName('admin.patch.article');
			$article->get('/page:{page:[0-9]+}', AdminViewAction::class)->setName('admin.view.articlepage');
			
			// cleanup duplicate articles
			$article->get('/cleanup-duplicates',  \App\Action\Admin\Article\CleanUpArticleAction::class)->setName('admin.cleanup');
			
		});
		
			
		
		// client
	    $group->group('/clients', function (Group $client){
			
			// files
			$client->group('/files', function (Group $files){
				$files->post('', \App\Action\Files\PostFileAction::class)->setName('admin.post.files');
				$files->get('/{fileid}', \App\Action\Files\GetFileAction::class)->setName('admin.get.file');
				$files->delete('/{fileid}', \App\Action\Files\DeleteFileAction::class)->setName('admin.delete.file');
				$files->patch('/{fileid}', \App\Action\Files\PatchFileAction::class)->setName('admin.patch.file');
			});
			
			// other
			$client->post('', \App\Action\Admin\Client\PostClientAction::class)->setName('admin.post.client');
			$client->get('/{id}', \App\Action\Admin\Client\GetClientAction::class)->setName('admin.get.client');
			$client->patch('/{id}', \App\Action\Admin\Client\PatchClientAction::class)->setName('admin.patch.client');
			$client->delete('/{id}', \App\Action\Admin\Client\DeleteClientAction::class)->setName('admin.delete.client');
			$client->get('/{id}/{type}',  \App\Action\Admin\Client\ViewClientAction::class)->setName('admin.view.client.type');
			
		});
		
		
		// installation
	    $group->group('/installation', function (Group $client){
			$client->post('', \App\Action\Admin\Installation\PostInstallationAction::class)->setName('admin.post.installation');
			$client->get('/{id}', \App\Action\Admin\Installation\GetInstallationAction::class)->setName('admin.get.installation');
			$client->delete('/{id}', \App\Action\Admin\Installation\DeleteInstallationAction::class)->setName('admin.delete.client');
		});
		
		
		// statistics
		$group->post('/statistics', \App\Action\Admin\Statistic\GetStatisticAction::class)->setName('admin.post.statistics');

		
		//$group->get('/survey-service/{year:[0-9]+}/{month:[0-9]+}', \App\Action\Admin\Survey\GetSurveyMonthAction::class)->setName('admin.get.survey');
		
		// survey
		$group->group('/{setting:[(surveyservice|surveytrade)]+}', function (Group $survey){ 

			$survey->get('/{year:[0-9]+}/{month:[0-9]+}', \App\Action\Admin\Survey\GetSurveyMonthAction::class)->setName('admin.get.survey');
			$survey->get('/{client}', \App\Action\Admin\Survey\SurveyQuestionAction::class)->setName('admin.survey.client');
			
			//$survey->get('', \App\Action\Admin\Survey\SurveyQuestionAction::class)->setName('admin.survey.type');
			
		});
				
		
				
		
		

		// al other
		$group->get('/{setting}/{type}', AdminViewAction::class)->setName('admin.statistics.get');
		
		
		
		// settings
		$group->post('/settings', PostSettingAction::class)->setName('admin.post.setting');		
	
	})->add(AuthMiddleware::class);
	
	
	// other
	$app->get('/{section}', PageAction::class)->setName('service')->add(AuthMiddleware::class);
	
	// file processor
//	$app->group('/files', function (Group $group) {
		//$group->get('/notify', \App\Action\Files\FilesNotifyAction::class)->setName('files.notify');
		
//	});
	
	
	/*
	// addressbook
    $app->group('/addressbook', function (Group $group) {
       		
		$group->post('', AddressbookPostAction::class)->setName('addressbook.post');	
	
	});
	*/
	
};