|
4 | 4 |
|
5 | 5 | use Illuminate\Http\Request; |
6 | 6 | use Illuminate\Support\Str; |
| 7 | +use Illuminate\Validation\ValidationException; |
7 | 8 |
|
8 | 9 | class SearchController |
9 | 10 | { |
10 | 11 | public function __invoke(Request $request) |
11 | 12 | { |
12 | | - $searchQuery = config('rapidez.models.search_query')::firstOrNew([ |
13 | | - 'query_text' => Str::lower($request->q), |
14 | | - 'store_id' => config('rapidez.store'), |
15 | | - ], ['popularity' => 1]); |
| 13 | + try { |
| 14 | + $request->validate(['q' => 'required|string|max:255']); |
16 | 15 |
|
17 | | - if (! $searchQuery->exists) { |
18 | | - $searchQuery->save(); |
| 16 | + $searchQuery = config('rapidez.models.search_query')::firstOrNew([ |
| 17 | + 'query_text' => Str::lower($request->q), |
| 18 | + 'store_id' => config('rapidez.store'), |
| 19 | + ], ['popularity' => 1]); |
19 | 20 |
|
20 | | - return view('rapidez::search.overview'); |
21 | | - } |
| 21 | + if (! $searchQuery->exists) { |
| 22 | + $searchQuery->save(); |
| 23 | + |
| 24 | + return view('rapidez::search.overview'); |
| 25 | + } |
22 | 26 |
|
23 | | - $searchQuery->increment('popularity'); |
| 27 | + $searchQuery->increment('popularity'); |
24 | 28 |
|
25 | | - if ($searchQuery->is_active === 1 && $searchQuery->redirect) { |
26 | | - return redirect($searchQuery->redirect, 301); |
| 29 | + if ($searchQuery->is_active === 1 && $searchQuery->redirect) { |
| 30 | + return redirect($searchQuery->redirect, 301); |
| 31 | + } |
| 32 | + } catch (ValidationException $e) { |
| 33 | + // |
27 | 34 | } |
28 | 35 |
|
29 | 36 | return view('rapidez::search.overview'); |
|
0 commit comments