Use Dokploy projects in dashboard widget
This commit is contained in:
@@ -40,6 +40,37 @@ class DokployClient
|
||||
}, 30);
|
||||
}
|
||||
|
||||
public function projects(): array
|
||||
{
|
||||
return $this->cached($this->projectsCacheKey(), function () {
|
||||
$projects = $this->get('/project.all');
|
||||
|
||||
return is_array($projects) ? $projects : [];
|
||||
}, 60);
|
||||
}
|
||||
|
||||
public function findProject(string $projectIdOrName): ?array
|
||||
{
|
||||
$projects = $this->projects();
|
||||
|
||||
foreach ($projects as $project) {
|
||||
if (Arr::get($project, 'projectId') === $projectIdOrName) {
|
||||
return $project;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($projects as $project) {
|
||||
if (
|
||||
Arr::get($project, 'name') === $projectIdOrName
|
||||
|| Arr::get($project, 'projectName') === $projectIdOrName
|
||||
) {
|
||||
return $project;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function recentDeployments(string $applicationId, int $limit = 5): array
|
||||
{
|
||||
return $this->cached($this->deploymentCacheKey($applicationId), function () use ($applicationId, $limit) {
|
||||
@@ -321,6 +352,11 @@ class DokployClient
|
||||
return "dokploy.compose.deployments.{$composeId}";
|
||||
}
|
||||
|
||||
protected function projectsCacheKey(): string
|
||||
{
|
||||
return 'dokploy.projects';
|
||||
}
|
||||
|
||||
protected function forgetApplicationCaches(string $applicationId): void
|
||||
{
|
||||
Cache::forget($this->applicationCacheKey($applicationId));
|
||||
|
||||
Reference in New Issue
Block a user