diff --git a/src/Command/Ide/IdeListMineCommand.php b/src/Command/Ide/IdeListMineCommand.php index a5a1325f3..801c75b22 100644 --- a/src/Command/Ide/IdeListMineCommand.php +++ b/src/Command/Ide/IdeListMineCommand.php @@ -6,6 +6,7 @@ use Acquia\Cli\Attribute\RequireAuth; use AcquiaCloudApi\Endpoints\Applications; +use AcquiaCloudApi\Endpoints\Codebases; use AcquiaCloudApi\Endpoints\Ides; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; @@ -23,6 +24,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int $acquiaCloudClient = $this->cloudApiClientService->getClient(); $ides = new Ides($acquiaCloudClient); $accountIdes = $ides->getMine(); + $codebaseResource = new Codebases($acquiaCloudClient); $applicationResource = new Applications($acquiaCloudClient); if (count($accountIdes)) { @@ -30,16 +32,31 @@ protected function execute(InputInterface $input, OutputInterface $output): int $table->setStyle('borderless'); $table->setHeaders(['IDEs']); foreach ($accountIdes as $ide) { - $appUrlParts = explode('/', $ide->links->application->href); - $appUuid = end($appUrlParts); - $application = $applicationResource->get($appUuid); - $applicationUrl = str_replace('/api', '/a', $application->links->self->href); + if (isset($ide->links->application)) { + $sub = "Application"; + $appUrlParts = explode('/', $ide->links->application->href); + $appUuid = end($appUrlParts); + $application = $applicationResource->get($appUuid); + $name = $application->name; + $url = str_replace('/api', '/a', $ide->links->application->href); + } elseif (isset($ide->links->codebase)) { + $sub = "Codebase"; + $codebaseUrlParts = explode('/', $ide->links->codebase->href); + $codebaseUuid = end($codebaseUrlParts); + $codebase = $codebaseResource->get($codebaseUuid); + $name = $codebase->label; + $url = str_replace('/api', '/a', $ide->links->codebase->href); + } else { + $name = 'N/A'; + $url = 'N/A'; + $sub = 'N/A'; + } $table->addRows([ ["$ide->label"], ["UUID: $ide->uuid"], - ["Application: $application->name"], - ["Subscription: {$application->subscription->name}"], + ["$sub: $name"], + ["Subscription: {$name}"], ["IDE URL: links->ide->href}>{$ide->links->ide->href}"], ["Web URL: links->web->href}>{$ide->links->web->href}"], new TableSeparator(),