From 156d8a9f68c1559d21152382592d3129aeb15722 Mon Sep 17 00:00:00 2001 From: Leonid Nikitin Date: Fri, 3 May 2024 00:06:59 +0500 Subject: [PATCH] Added middleware IsWebsiteTranslations and IsProject. This fixes errors where Project or WebsiteTranslations are not found. --- .../app/Http/Middleware/IsProject.php | 25 +++++++++++++++++++ .../Http/Middleware/IsWebsiteTranslations.php | 25 +++++++++++++++++++ app/application/routes/web-project.php | 16 ++++++------ 3 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 app/application/app/Http/Middleware/IsProject.php create mode 100644 app/application/app/Http/Middleware/IsWebsiteTranslations.php 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'); + }); +});