diff --git a/src/Http/Controllers/SearchController.php b/src/Http/Controllers/SearchController.php index 5184a01b1..6014f1637 100644 --- a/src/Http/Controllers/SearchController.php +++ b/src/Http/Controllers/SearchController.php @@ -4,26 +4,33 @@ use Illuminate\Http\Request; use Illuminate\Support\Str; +use Illuminate\Validation\ValidationException; class SearchController { public function __invoke(Request $request) { - $searchQuery = config('rapidez.models.search_query')::firstOrNew([ - 'query_text' => Str::lower($request->q), - 'store_id' => config('rapidez.store'), - ], ['popularity' => 1]); + try { + $request->validate(['q' => 'required|string|max:255']); - if (! $searchQuery->exists) { - $searchQuery->save(); + $searchQuery = config('rapidez.models.search_query')::firstOrNew([ + 'query_text' => Str::lower($request->q), + 'store_id' => config('rapidez.store'), + ], ['popularity' => 1]); - return view('rapidez::search.overview'); - } + if (! $searchQuery->exists) { + $searchQuery->save(); + + return view('rapidez::search.overview'); + } - $searchQuery->increment('popularity'); + $searchQuery->increment('popularity'); - if ($searchQuery->is_active === 1 && $searchQuery->redirect) { - return redirect($searchQuery->redirect, 301); + if ($searchQuery->is_active === 1 && $searchQuery->redirect) { + return redirect($searchQuery->redirect, 301); + } + } catch (ValidationException $e) { + // } return view('rapidez::search.overview');