apiKeyService = $apiKeyService; $this->translator = $translator; parent::__construct(null); } public function configure() { $this->setName('api-key:list') ->setDescription($this->translator->translate('Lists all the available API keys.')) ->addOption( 'enabledOnly', null, InputOption::VALUE_NONE, $this->translator->translate('Tells if only enabled API keys should be returned.') ); } public function execute(InputInterface $input, OutputInterface $output) { $enabledOnly = $input->getOption('enabledOnly'); $list = $this->apiKeyService->listKeys($enabledOnly); $table = new Table($output); if ($enabledOnly) { $table->setHeaders([ $this->translator->translate('Key'), $this->translator->translate('Expiration date'), ]); } else { $table->setHeaders([ $this->translator->translate('Key'), $this->translator->translate('Is enabled'), $this->translator->translate('Expiration date'), ]); } /** @var ApiKey $row */ foreach ($list as $row) { $key = $row->getKey(); $expiration = $row->getExpirationDate(); $rowData = []; if ($enabledOnly) { $rowData[] = $key; } else { $rowData[] = $row->isEnabled() ? $this->getSuccessString($key) : $this->getErrorString($key); $rowData[] = $row->isEnabled() ? $this->getSuccessString('+++') : $this->getErrorString('---'); } $rowData[] = isset($expiration) ? $expiration->format(\DateTime::ISO8601) : '-'; $table->addRow($rowData); } $table->render(); } /** * @param string $string * @return string */ protected function getErrorString($string) { return sprintf('%s', $string); } /** * @param string $string * @return string */ protected function getSuccessString($string) { return sprintf('%s', $string); } }