diff --git a/app/Http/Controllers/NameController.php b/app/Http/Controllers/NameController.php index c3e52e4..ee461b6 100644 --- a/app/Http/Controllers/NameController.php +++ b/app/Http/Controllers/NameController.php @@ -6,6 +6,7 @@ use App\Http\ViewModels\Names\NameViewModel; use App\Http\ViewModels\User\ListViewModel; use App\Http\ViewModels\User\UserViewModel; +use App\Jobs\IncrementPageViewForName; use App\Models\Name; use App\Services\ToggleNameToNameList; use Illuminate\Contracts\View\View; @@ -65,6 +66,8 @@ public function show(Request $request): View $note = $requestedName->getNoteForUser(); } + IncrementPageViewForName::dispatch($requestedName->id); + return view('names.show', [ 'name' => $name, 'popularity' => $popularity, diff --git a/app/Jobs/IncrementPageViewForName.php b/app/Jobs/IncrementPageViewForName.php new file mode 100644 index 0000000..38a175c --- /dev/null +++ b/app/Jobs/IncrementPageViewForName.php @@ -0,0 +1,31 @@ +where('id', $this->nameId) + ->increment('page_views'); + } +} diff --git a/tests/Unit/Jobs/IncrementPageViewForNameTest.php b/tests/Unit/Jobs/IncrementPageViewForNameTest.php new file mode 100644 index 0000000..5b3cb20 --- /dev/null +++ b/tests/Unit/Jobs/IncrementPageViewForNameTest.php @@ -0,0 +1,26 @@ +create(); + + IncrementPageViewForName::dispatch($name->id); + + $this->assertDatabaseHas('names', [ + 'id' => $name->id, + 'page_views' => 2, + ]); + } +}