88use Illuminate \Support \Carbon ;
99use Illuminate \Support \Facades \Cache ;
1010use 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 ;
1114use MeShaon \RequestAnalytics \Models \RequestAnalytics ;
1215
1316class 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 );
0 commit comments