diff --git a/lib/Command/CirclesCreate.php b/lib/Command/CirclesCreate.php index bcba99c94..0e2cc2af1 100644 --- a/lib/Command/CirclesCreate.php +++ b/lib/Command/CirclesCreate.php @@ -36,9 +36,12 @@ use OCA\Circles\Exceptions\InitiatorNotFoundException; use OCA\Circles\Exceptions\RequestBuilderException; use OCA\Circles\Exceptions\SingleCircleNotFoundException; +use OCA\Circles\Model\Circle; use OCA\Circles\Model\Member; use OCA\Circles\Service\CircleService; use OCA\Circles\Service\FederatedUserService; +use OCA\Circles\Tools\Exceptions\InvalidItemException; +use OCA\Circles\Tools\Traits\TDeserialize; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; @@ -50,7 +53,7 @@ * @package OCA\Circles\Command */ class CirclesCreate extends Base { - + use TDeserialize; /** @var FederatedUserService */ private $federatedUserService; @@ -100,6 +103,7 @@ protected function configure() { * @throws InitiatorNotFoundException * @throws SingleCircleNotFoundException * @throws RequestBuilderException + * @throws InvalidItemException */ protected function execute(InputInterface $input, OutputInterface $output): int { $ownerId = $input->getArgument('owner'); @@ -129,6 +133,12 @@ protected function execute(InputInterface $input, OutputInterface $output): int if (strtolower($input->getOption('output')) === 'json') { $output->writeln(json_encode($outcome, JSON_PRETTY_PRINT)); + } elseif (strtolower($input->getOption('output')) !== 'none') { + /** @var Circle $circle */ + $circle = $this->deserialize($outcome, Circle::class); + $output->writeln('Id: ' . $circle->getSingleId() . ''); + $output->writeln('Name: ' . $circle->getDisplayName() . ''); + $output->writeln('Owner: ' . $circle->getOwner()->getDisplayName() . ''); } return 0; diff --git a/lib/Db/CoreQueryBuilder.php b/lib/Db/CoreQueryBuilder.php index 0f94eb68d..85b6af6e1 100644 --- a/lib/Db/CoreQueryBuilder.php +++ b/lib/Db/CoreQueryBuilder.php @@ -1571,14 +1571,18 @@ private function generateRemoteInstanceSelectAlias(string $alias, array $default /** * @param array $path * @param array $options + * + * @return CoreQueryBuilder */ - public function setOptions(array $path, array $options): void { + public function setOptions(array $path, array $options): self { $options = [self::OPTIONS => $options]; foreach (array_reverse($path) as $item) { $options = [$item => $options]; } - $this->options = $options; + $this->options = array_merge_recursive($this->options, $options); + + return $this; } diff --git a/lib/Model/ModelManager.php b/lib/Model/ModelManager.php index 175214b90..6073add26 100644 --- a/lib/Model/ModelManager.php +++ b/lib/Model/ModelManager.php @@ -31,7 +31,7 @@ namespace OCA\Circles\Model; -use OCA\Circles\Tools\Traits\TNCLogger; +use Exception; use OCA\Circles\AppInfo\Application; use OCA\Circles\Db\CircleRequest; use OCA\Circles\Db\CoreQueryBuilder; @@ -57,6 +57,7 @@ use OCA\Circles\Service\InterfaceService; use OCA\Circles\Service\MembershipService; use OCA\Circles\Service\RemoteService; +use OCA\Circles\Tools\Traits\TNCLogger; use OCP\IURLGenerator; /** @@ -553,10 +554,16 @@ public function fixInstance(string $instance): string { * @return string */ public function generateLinkToCircle(string $singleId): string { - return $this->urlGenerator->linkToRoute( - $this->configService->getAppValue(ConfigService::ROUTE_TO_CIRCLE), - ['singleId' => $singleId] - ); + $path = $this->configService->getAppValue(ConfigService::ROUTE_TO_CIRCLE); + + try { + if ($path !== '') { + return $this->urlGenerator->linkToRoute($path, ['singleId' => $singleId]); + } + } catch (Exception $e) { + } + + return ''; }