Skip to content

Commit ff570bd

Browse files
committed
feat(organization): enhance organization stats with detailed metrics and activity feed
1 parent d02b2f6 commit ff570bd

5 files changed

Lines changed: 361 additions & 64 deletions

File tree

app/Domains/Organization/Contracts/Data/OrganizationStatsData.php

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace App\Domains\Organization\Contracts\Data;
44

5-
use App\Models\Organization;
65
use Spatie\LaravelData\Data;
76
use Spatie\TypeScriptTransformer\Attributes\TypeScript;
87

@@ -13,14 +12,10 @@ public function __construct(
1312
public int $packagesCount,
1413
public int $repositoriesCount,
1514
public int $tokensCount,
15+
public RepositoryHealthData $repositoryHealth,
16+
public PackageMetricsData $packageMetrics,
17+
public TokenMetricsData $tokenMetrics,
18+
public MemberMetricsData $memberMetrics,
19+
public ActivityFeedData $activityFeed,
1620
) {}
17-
18-
public static function fromModel(Organization $organization): self
19-
{
20-
return new self(
21-
packagesCount: $organization->packages()->count(),
22-
repositoriesCount: $organization->repositories()->count(),
23-
tokensCount: $organization->accessTokens()->count(),
24-
);
25-
}
2621
}

app/Domains/Organization/Http/Controllers/OrganizationController.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
namespace App\Domains\Organization\Http\Controllers;
44

5+
use App\Domains\Organization\Actions\BuildOrganizationStatsAction;
56
use App\Domains\Organization\Actions\CreateOrganizationAction;
67
use App\Domains\Organization\Contracts\Data\OrganizationData;
7-
use App\Domains\Organization\Contracts\Data\OrganizationStatsData;
88
use App\Domains\Organization\Requests\StoreOrganizationRequest;
99
use App\Http\Controllers\Controller;
1010
use App\Models\Organization;
@@ -15,7 +15,8 @@
1515
class OrganizationController extends Controller
1616
{
1717
public function __construct(
18-
protected CreateOrganizationAction $createOrganization
18+
protected CreateOrganizationAction $createOrganization,
19+
protected BuildOrganizationStatsAction $buildStats,
1920
) {}
2021

2122
public function index(): Response
@@ -42,7 +43,7 @@ public function show(Organization $organization): Response
4243
{
4344
return Inertia::render('organizations/show', [
4445
'organization' => OrganizationData::fromModel($organization),
45-
'stats' => OrganizationStatsData::fromModel($organization),
46+
'stats' => $this->buildStats->handle($organization),
4647
]);
4748
}
4849

resources/js/components/ui/sidebar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ function Sidebar({
118118
<div
119119
data-slot="sidebar"
120120
className={cn(
121-
'bg-sidebar text-sidebar-foreground hidden h-svh w-(--sidebar-width) flex-col border-r md:flex',
121+
'bg-sidebar text-sidebar-foreground sticky top-0 hidden h-svh w-(--sidebar-width) flex-col border-r md:flex',
122122
className
123123
)}
124124
{...props}

0 commit comments

Comments
 (0)