From cfae6f0addcdfbf3090bd758582fad5d1a529c6c Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Wed, 13 Apr 2022 11:30:53 -0100 Subject: [PATCH 1/3] display new circle data Signed-off-by: Maxence Lange --- lib/Command/CirclesCreate.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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; From 22767faab7bd158f898aa713bc95fd46c343fe6a Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Tue, 7 Jun 2022 17:54:15 -0100 Subject: [PATCH 2/3] do not generate link if no front-end Signed-off-by: Maxence Lange --- lib/Model/ModelManager.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) 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 ''; } From b626660b0e28a354efba3ca754959aeec89237f3 Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Wed, 4 May 2022 09:56:56 -0100 Subject: [PATCH 3/3] recursive setOptions() Signed-off-by: Maxence Lange --- lib/Db/CoreQueryBuilder.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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; }