diff --git a/app/Platform/Controllers/GameController.php b/app/Platform/Controllers/GameController.php index d154a1ead..1a7813ff1 100644 --- a/app/Platform/Controllers/GameController.php +++ b/app/Platform/Controllers/GameController.php @@ -6,6 +6,7 @@ use App\Http\Controller; use App\Models\Game; +use App\Models\System; use App\Platform\Requests\GameRequest; use Illuminate\Contracts\View\View; use Illuminate\Http\RedirectResponse; @@ -106,4 +107,16 @@ public function destroy(Game $game): void { $this->authorize('delete', $game); } + + public function random(): RedirectResponse + { + $this->authorize('viewAny', Game::class); + + $randomGameWithAchievements = Game::whereNotIn('ConsoleID', System::getNonGameSystems()) + ->where('achievements_published', '>=', 6) + ->inRandomOrder() + ->firstOrFail(); + + return redirect(route('game.show', ['game' => $randomGameWithAchievements])); + } } diff --git a/app/Platform/RouteServiceProvider.php b/app/Platform/RouteServiceProvider.php index d6ebb6313..e23f30d18 100755 --- a/app/Platform/RouteServiceProvider.php +++ b/app/Platform/RouteServiceProvider.php @@ -6,6 +6,7 @@ use App\Models\GameHash; use App\Platform\Controllers\AchievementController; +use App\Platform\Controllers\GameController; use App\Platform\Controllers\GameHashController; use App\Platform\Controllers\PlayerAchievementController; use App\Platform\Controllers\PlayerGameController; @@ -63,6 +64,7 @@ protected function mapWebRoutes(): void // Route::get('game/{game}/badges', [GameBadgeController::class, 'index'])->name('game.badge.index'); // Route::get('game/{game}/assets', [GameAssetsController::class, 'index'])->name('game.asset.index'); // Route::get('game/{game}/players', [GamePlayerController::class, 'index'])->name('game.player.index'); + Route::get('game/random', [GameController::class, 'random'])->name('game.random'); // Route::get('create', CreateController::class)->name('create'); // Route::resource('developers', DeveloperController::class)->only('index'); diff --git a/resources/views/pages/game/random.blade.php b/resources/views/pages/game/random.blade.php deleted file mode 100644 index 14f4fa3d4..000000000 --- a/resources/views/pages/game/random.blade.php +++ /dev/null @@ -1,23 +0,0 @@ -where('achievements_published', '>=', 6) - ->inRandomOrder() - ->firstOrFail(); - - return redirect(route('game.show', ['game' => $randomGameWithAchievements])); -}); - -?>