HelloCSE/routes/web.php
2024-04-10 13:56:22 +02:00

111 lignes
Pas d'EOL
4,5 Kio
PHP

<?php
use App\Http\Utility\routeCollector;
use App\Http\Utility\debug;
use Illuminate\Http\Request;
Route::get('/', function () {
echo 'HelloCSE Test Technique';
});
Route::match(['get'],'/csrf', function () {
return view('csrftoken');
});
// Documentation des routes
Route::match(['get'],'/webroutes', function () {
// if(session('user')['isSysAdmin'])
return view('webrouteslist');
// return ['status'=>0,'msg'=>"NOT ALLOWED"];
});
// Logs Reader
Route::match(['get'],'/logs', function () {
// if(session('user')['isSysAdmin'])
return view('logsreader');
// return ['status'=>0,'msg'=>"NOT ALLOWED"];
});
// Auto chargement des fichiers routes.php
$rC = new routeCollector();
$webRoutes = $rC->getRoutes('web');
if(is_array($webRoutes)){
foreach ($webRoutes as $api){
// inscription des GET
if (array_key_exists('get',$api) && count($api['get'])){
foreach ($api['get'] as $getter){
// le path correspondant
$path=$api['api'].'/'.$getter['url'];
// la methode et la classe publique a utiliser
$action=[$api['class'], $getter['method']];
// les paramètres à controller dans le chemin
$ctrls=array_key_exists('params',$getter)?$getter['params']:[];
// le marqueur de cette route pour la retrouver
$routeMarker='web|'.$api['api'].'|get|'.$getter['url'];
Route::get($path,$action)->where($ctrls)->middleware('routeCtrl:'.$routeMarker);
}
}
// inscription des POST
if (array_key_exists('post',$api) && count($api['post'])){
foreach ($api['post'] as $setter){
// le path correspondant
$path=$api['api'].'/'.$setter['url'];
// la methode et la classe publique a utiliser
$action=[$api['class'], $setter['method']];
// les paramètres à controller dans le chemin
$ctrls=array_key_exists('params',$setter)?$setter['params']:[];
// le marqueur de cette route pour la retrouver
$routeMarker='web|'.$api['api'].'|post|'.$setter['url'];
Route::post($path,$action)->where($ctrls)->middleware('routeCtrl:'.$routeMarker);
}
}
// inscription des PATCH
if (array_key_exists('patch',$api) && count($api['patch'])){
foreach ($api['patch'] as $setter){
// le path correspondant
$path=$api['api'].'/'.$setter['url'];
// la methode et la classe publique a utiliser
$action=[$api['class'], $setter['method']];
// les paramètres à controller dans le chemin
$ctrls=array_key_exists('params',$setter)?$setter['params']:[];
// le marqueur de cette route pour la retrouver
$routeMarker='web|'.$api['api'].'|patch|'.$setter['url'];
Route::patch($path,$action)->where($ctrls)->middleware('routeCtrl:'.$routeMarker);
}
}
// inscription des DELETE
if (array_key_exists('delete',$api) && count($api['delete'])){
foreach ($api['delete'] as $setter){
// le path correspondant
$path=$api['api'].'/'.$setter['url'];
// la methode et la classe publique a utiliser
$action=[$api['class'], $setter['method']];
// les paramètres à controller dans le chemin
$ctrls=array_key_exists('params',$setter)?$setter['params']:[];
// le marqueur de cette route pour la retrouver
$routeMarker='web|'.$api['api'].'|delete|'.$setter['url'];
Route::delete($path,$action)->where($ctrls)->middleware('routeCtrl:'.$routeMarker);
}
}
}
}
// FALLBACK, toujours en dernier !
Route::fallback(function (Request $request) {
$req="[{$request->method()}] {$request->fullUrl()}";
return ['status'=>0,'msg'=>"INEXISTING ROUTE : ".$req];
});