From 525086c58cd413a0973f850a9418cadc9e2c556f Mon Sep 17 00:00:00 2001 From: Daniel-I-Am Date: Sat, 4 Sep 2021 16:24:40 +0200 Subject: [PATCH] Only count views when requesting endpoint from Vue.js --- app/Http/Controllers/BlogArticleController.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/BlogArticleController.php b/app/Http/Controllers/BlogArticleController.php index 97cd7eb..8af54f0 100644 --- a/app/Http/Controllers/BlogArticleController.php +++ b/app/Http/Controllers/BlogArticleController.php @@ -86,10 +86,11 @@ class BlogArticleController extends Controller /** * Display the specified resource. * - * @param \App\Models\BlogArticle $blogArticle + * @param \Illuminate\Http\Request $request + * @param int $id * @return \Illuminate\Http\JsonResponse */ - public function show(int $id) + public function show(Request $request, int $id) { $blogArticle = BlogArticle::withCount('views')->find($id); @@ -102,9 +103,13 @@ class BlogArticleController extends Controller abort(404); } - views($blogArticle) - ->cooldown(now()->addHour()) - ->record(); + $domain = $request->headers->get('referer') ?: $request->headers->get('origin'); + + if ($domain !== null) { + views($blogArticle) + ->cooldown(now()->addHour()) + ->record(); + } } return response()->json($blogArticle);