ref: counts the number of urls

pull/884/head
Kei 1 year ago
parent b813673e0b
commit 975ef4b837

@ -82,10 +82,9 @@ final class UserTable extends PowerGridComponent
{
return PowerGrid::eloquent()
->addColumn('name', function (User $user) {
$url = $user->urls();
$urlCountTitle = $url->count().' '.Str::plural('url', $url->count()).' created';
$urlCountTitle = $user->urls()->count().' '.Str::plural('url', $user->urls()->count()).' created';
return $user->name.' <span title="'.$urlCountTitle.'">('.$url->count().')</span>';
return $user->name.' <span title="'.$urlCountTitle.'">('.$user->urls()->count().')</span>';
})
->addColumn('email')
->addColumn('created_at_formatted', function (User $user) {

@ -150,14 +150,6 @@ class Url extends Model
return self::byGuests()->count();
}
/**
* Total shortened URLs created
*/
public function totalUrl(): int
{
return self::count();
}
/**
* Total clicks on each shortened URLs
*/
@ -165,7 +157,7 @@ class Url extends Model
{
$total = self::find($urlId)->visits()->count();
if ($unique) {
if ($unique === true) {
$total = self::find($urlId)->visits()
->whereIsFirstClick(true)
->count();

@ -64,11 +64,6 @@ class User extends Authenticatable
|--------------------------------------------------------------------------
*/
public function totalUsers(): int
{
return self::count();
}
/*
* Count the number of guests (URL without user id) by IP address, then
* grouped by IP address.

@ -24,8 +24,8 @@
<div class="w-full sm:w-1/4">
<div class="block">
<b class="text-uh-1">@svg('icon-link', 'mr-1.5') {{__('URLs')}}:</b>
<span class="text-cyan-600">{{compactNumber($url->totalUrl())}}</span> -
<span class="text-teal-600">{{compactNumber($url->numberOfUrls(auth()->id()))}}</span> -
<span class="text-cyan-600">{{compactNumber($url->count())}}</span> -
<span class="text-teal-600">{{compactNumber($url->whereUserId(auth()->id())->count())}}</span> -
<span class="text-orange-600">{{compactNumber($url->numberOfUrlsByGuests())}}</span>
</div>
<div class="block">
@ -38,7 +38,7 @@
<div class="text-uh-1 w-full sm:w-1/4 mt-4 sm:mt-0">
<div class="block">
<b>@svg('icon-user', 'mr-1.5') {{__('Users')}}:</b>
<span class="font-light">{{compactNumber($user->totalUsers())}}</span>
<span class="font-light">{{compactNumber($user->count())}}</span>
</div>
<div class="block">
<b>@svg('icon-user', 'mr-1.5') {{__('Guests')}}:</b>
@ -50,7 +50,7 @@
<div class="flex flex-wrap">
<div class="w-full sm:w-1/4">
<span class="font-semibold text-md sm:text-2xl">@svg('icon-link', 'mr-1.5') {{__('URLs')}}:</span>
<span class="font-light text-lg sm:text-2xl">{{compactNumber($url->numberOfUrls(auth()->id()))}}</span>
<span class="font-light text-lg sm:text-2xl">{{compactNumber($url->whereUserId(auth()->id())->count())}}</span>
</div>
<div class="w-full sm:w-1/4">
<span class="font-semibold text-lg sm:text-2xl">@svg('icon-eye', 'mr-1.5') {{__('Clicks')}}:</span>

@ -139,33 +139,6 @@ class UrlTest extends TestCase
$this->assertSame('No Title', $url->title);
}
/**
* @test
* @group u-model
*/
public function totalShortUrl()
{
Url::factory()->create();
Url::factory()->create([
'user_id' => Url::GUEST_ID,
]);
$actual = $this->url->totalUrl();
$this->assertSame(2, $actual);
}
/**
* @test
* @group u-model
*/
public function totalShortUrlByMe()
{
$urlModel = Url::factory()->create();
$actual = $this->url->numberOfUrls($urlModel->author->id);
$this->assertSame(1, $actual);
}
/**
* @test
* @group u-model

@ -217,7 +217,7 @@ class KeyGeneratorServiceTest extends TestCase
config(['urlhub.hash_length' => config('urlhub.hash_length') + 3]);
$this->assertSame(0, $this->keyGeneratorService->usedCapacity());
$this->assertSame($this->totalUrl, $this->url->totalUrl());
$this->assertSame($this->totalUrl, $this->url->count());
}
/**

Loading…
Cancel
Save