From f188213cb7a33bd10a2da973969714ecf76890b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Mon, 12 Oct 2020 16:05:19 +0200 Subject: [PATCH] Add circle service abstraction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/Service/CirclesService.php | 62 ++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 lib/Service/CirclesService.php diff --git a/lib/Service/CirclesService.php b/lib/Service/CirclesService.php new file mode 100644 index 000000000..4df7a7987 --- /dev/null +++ b/lib/Service/CirclesService.php @@ -0,0 +1,62 @@ + + * + * @author Julius Härtl + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +declare(strict_types=1); + + +namespace OCA\Deck\Service; + +use OCP\App\IAppManager; + +/** + * Wrapper around circles app API since it is not in a public namespace so we need to make sure that + * having the app disabled is properly handled + */ +class CirclesService { + private $circlesEnabled; + + public function __construct(IAppManager $appManager) { + $this->circlesEnabled = $appManager->isEnabledForUser('circles'); + } + + public function getCircle($circleId) { + if (!$this->circlesEnabled) { + return null; + } + + return \OCA\Circles\Api\v1\Circles::detailsCircle($circleId, true); + } + + public function isUserInCircle($circleId, $userId): bool { + if (!$this->circlesEnabled) { + return false; + } + + try { + \OCA\Circles\Api\v1\Circles::getMember($circleId, $userId, 1, true); + return true; + } catch (\Exception $e) { + } + return false; + } +}