%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/apps/app_api/lib/Command/ExAppConfig/ |
Current File : //www/varak.net/nextcloud.varak.net/apps/app_api/lib/Command/ExAppConfig/ListConfig.php |
<?php declare(strict_types=1); namespace OCA\AppAPI\Command\ExAppConfig; use OCA\AppAPI\Service\ExAppConfigService; use OCA\AppAPI\Service\ExAppService; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; class ListConfig extends Command { private const SENSITIVE_VALUE = '***REMOVED SENSITIVE VALUE***'; public function __construct( private readonly ExAppService $service, private readonly ExAppConfigService $appConfigService ) { parent::__construct(); } protected function configure(): void { $this->setName('app_api:app:config:list'); $this->setDescription('List ExApp configs'); $this->addArgument('appid', InputArgument::REQUIRED); $this->addOption('private', null, InputOption::VALUE_NONE, 'Include sensitive ExApp config values like secrets, passwords, etc.'); } protected function execute(InputInterface $input, OutputInterface $output): int { $appId = $input->getArgument('appid'); $exApp = $this->service->getExApp($appId); if ($exApp === null) { $output->writeln(sprintf('ExApp %s not found.', $appId)); return 1; } $exAppConfigs = $this->appConfigService->getAllAppConfig($exApp->getAppid()); $private = $input->getOption('private'); $output->writeln(sprintf('ExApp %s configs:', $exApp->getAppid())); $appConfigs = []; foreach ($exAppConfigs as $exAppConfig) { $appConfigs[$exAppConfig->getAppid()][$exAppConfig->getConfigkey()] = ($private && !$exAppConfig->getSensitive() ? $exAppConfig->getConfigvalue() : self::SENSITIVE_VALUE); } $output->writeln(json_encode($appConfigs, JSON_PRETTY_PRINT)); return 0; } }