Skip to content

Commit e83e99c

Browse files
authored
Validate search terms (#1187)
1 parent 3c88b28 commit e83e99c

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

src/Http/Controllers/SearchController.php

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,33 @@
44

55
use Illuminate\Http\Request;
66
use Illuminate\Support\Str;
7+
use Illuminate\Validation\ValidationException;
78

89
class SearchController
910
{
1011
public function __invoke(Request $request)
1112
{
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']);
1615

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]);
1920

20-
return view('rapidez::search.overview');
21-
}
21+
if (! $searchQuery->exists) {
22+
$searchQuery->save();
23+
24+
return view('rapidez::search.overview');
25+
}
2226

23-
$searchQuery->increment('popularity');
27+
$searchQuery->increment('popularity');
2428

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+
//
2734
}
2835

2936
return view('rapidez::search.overview');

0 commit comments

Comments
 (0)