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 '';
}