Skip to content

Commit e941770

Browse files
committed
Move validation to form request
1 parent f361c3f commit e941770

4 files changed

Lines changed: 73 additions & 19 deletions

File tree

src/Controllers/Api/AnalyticsApiController.php

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,15 @@
88
use Illuminate\Support\Carbon;
99
use Illuminate\Support\Facades\Cache;
1010
use Illuminate\Support\Facades\DB;
11+
use MeShaon\RequestAnalytics\Http\Requests\OverviewRequest;
12+
use MeShaon\RequestAnalytics\Http\Requests\PageViewsRequest;
13+
use MeShaon\RequestAnalytics\Http\Requests\VisitorsRequest;
1114
use MeShaon\RequestAnalytics\Models\RequestAnalytics;
1215

1316
class AnalyticsApiController extends BaseController
1417
{
15-
public function overview(Request $request): JsonResponse
18+
public function overview(OverviewRequest $request): JsonResponse
1619
{
17-
$request->validate([
18-
'date_range' => 'integer|min:1|max:365',
19-
'start_date' => 'date',
20-
'end_date' => 'date|after_or_equal:start_date',
21-
]);
2220

2321
$dateRange = $this->getDateRange($request);
2422

@@ -43,13 +41,8 @@ public function overview(Request $request): JsonResponse
4341
]);
4442
}
4543

46-
public function visitors(Request $request): JsonResponse
44+
public function visitors(VisitorsRequest $request): JsonResponse
4745
{
48-
$request->validate([
49-
'date_range' => 'integer|min:1|max:365',
50-
'page' => 'integer|min:1',
51-
'per_page' => 'integer|min:10|max:100',
52-
]);
5346

5447
$dateRange = $this->getDateRange($request);
5548
$perPage = $request->input('per_page', 50);
@@ -74,14 +67,8 @@ public function visitors(Request $request): JsonResponse
7467
]);
7568
}
7669

77-
public function pageViews(Request $request): JsonResponse
70+
public function pageViews(PageViewsRequest $request): JsonResponse
7871
{
79-
$request->validate([
80-
'date_range' => 'integer|min:1|max:365',
81-
'path' => 'string',
82-
'page' => 'integer|min:1',
83-
'per_page' => 'integer|min:10|max:100',
84-
]);
8572

8673
$dateRange = $this->getDateRange($request);
8774
$perPage = $request->input('per_page', 50);
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace MeShaon\RequestAnalytics\Http\Requests;
4+
5+
use Illuminate\Foundation\Http\FormRequest;
6+
7+
class OverviewRequest extends FormRequest
8+
{
9+
public function authorize(): bool
10+
{
11+
return true;
12+
}
13+
14+
public function rules(): array
15+
{
16+
return [
17+
'date_range' => 'integer|min:1|max:365',
18+
'start_date' => 'date',
19+
'end_date' => 'date|after_or_equal:start_date',
20+
];
21+
}
22+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace MeShaon\RequestAnalytics\Http\Requests;
4+
5+
use Illuminate\Foundation\Http\FormRequest;
6+
7+
class PageViewsRequest extends FormRequest
8+
{
9+
public function authorize(): bool
10+
{
11+
return true;
12+
}
13+
14+
public function rules(): array
15+
{
16+
return [
17+
'date_range' => 'integer|min:1|max:365',
18+
'path' => 'string',
19+
'page' => 'integer|min:1',
20+
'per_page' => 'integer|min:10|max:100',
21+
];
22+
}
23+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace MeShaon\RequestAnalytics\Http\Requests;
4+
5+
use Illuminate\Foundation\Http\FormRequest;
6+
7+
class VisitorsRequest extends FormRequest
8+
{
9+
public function authorize(): bool
10+
{
11+
return true;
12+
}
13+
14+
public function rules(): array
15+
{
16+
return [
17+
'date_range' => 'integer|min:1|max:365',
18+
'page' => 'integer|min:1',
19+
'per_page' => 'integer|min:10|max:100',
20+
];
21+
}
22+
}

0 commit comments

Comments
 (0)