diff --git a/app/application/app/Http/Middleware/IsProject.php b/app/application/app/Http/Middleware/IsProject.php new file mode 100644 index 0000000..a4b701f --- /dev/null +++ b/app/application/app/Http/Middleware/IsProject.php @@ -0,0 +1,25 @@ +get('project'); + if (\is_null($project)) { + \abort(Response::HTTP_NOT_FOUND); + } + + if ($project instanceof Project === false) { + \report("$project must be an instance of Project"); + \abort(Response::HTTP_NOT_FOUND); + } + + return $next($request); + } +} diff --git a/app/application/app/Http/Middleware/IsWebsiteTranslations.php b/app/application/app/Http/Middleware/IsWebsiteTranslations.php new file mode 100644 index 0000000..261af69 --- /dev/null +++ b/app/application/app/Http/Middleware/IsWebsiteTranslations.php @@ -0,0 +1,25 @@ +get('websiteTranslations'); + if (\is_null($websiteTranslations)) { + \abort(Response::HTTP_NOT_FOUND); + } + + if ($websiteTranslations instanceof WebsiteTranslations === false) { + \report("$websiteTranslations must be an instance of WebsiteTranslations"); + \abort(Response::HTTP_NOT_FOUND); + } + + return $next($request); + } +} diff --git a/app/application/routes/web-project.php b/app/application/routes/web-project.php index bd15ea9..330eff2 100644 --- a/app/application/routes/web-project.php +++ b/app/application/routes/web-project.php @@ -3,11 +3,13 @@ use Illuminate\Support\Facades\Route; Route::get('/', [\App\Http\Controllers\Site\ProjectsController::class, 'index'])->name('home'); -Route::get('/language/{language}', [\App\Http\Controllers\Site\ProjectsController::class, 'index'])->name('home-language'); +Route::middleware([\App\Http\Middleware\IsProject::class, \App\Http\Middleware\IsWebsiteTranslations::class])->group(function () { + Route::get('/language/{language}', [\App\Http\Controllers\Site\ProjectsController::class, 'index'])->name('home-language'); -Route::get('feedback', [\App\Http\Controllers\Site\FeedbackController::class, 'index'])->name('feedback'); -Route::get('feedback/language/{language}', [\App\Http\Controllers\Site\FeedbackController::class, 'index'])->name('feedback-language'); -Route::get('feedback/success', [\App\Http\Controllers\Site\FeedbackController::class, 'index'])->name('feedback.success'); -Route::get('feedback/success/language/{language}', [\App\Http\Controllers\Site\FeedbackController::class, 'index'])->name('feedback.success-language'); -Route::post('feedback', [\App\Http\Controllers\Site\FeedbackController::class, 'send'])->name('feedback.send'); -Route::post('feedback/language/{language}', [\App\Http\Controllers\Site\FeedbackController::class, 'send'])->name('feedback.send-language'); + Route::prefix('feedback')->group(function () { + Route::get('/', [\App\Http\Controllers\Site\FeedbackController::class, 'index'])->name('feedback'); + Route::get('language/{language}', [\App\Http\Controllers\Site\FeedbackController::class, 'index'])->name('feedback-language'); + Route::post('/', [\App\Http\Controllers\Site\FeedbackController::class, 'send'])->name('feedback.send'); + Route::post('language/{language}', [\App\Http\Controllers\Site\FeedbackController::class, 'send'])->name('feedback.send-language'); + }); +});