Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/circles.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib/Api
diff options
context:
space:
mode:
authorVinicius Cubas Brand <viniciuscb@gmail.com>2017-10-25 18:38:13 +0300
committerVinicius Cubas Brand <viniciuscb@gmail.com>2017-10-25 18:38:13 +0300
commita7458c3e73f468198a6725d0b29683ea40e908d4 (patch)
treec761ac7fcd15139efccfc297e80ed2ff3014b608 /lib/Api
parent200422b2ffe2bd5b6014f42c5296ce808c9a96f5 (diff)
parent6e34dea0c8fe0b2e9cd9f07ec85923b7c8097db4 (diff)
Merge branch 'master' into circles-files-panel
Diffstat (limited to 'lib/Api')
-rw-r--r--lib/Api/Sharees.php13
-rw-r--r--lib/Api/v1/Circles.php55
-rw-r--r--lib/Api/v1/ShotgunCircles.php79
3 files changed, 142 insertions, 5 deletions
diff --git a/lib/Api/Sharees.php b/lib/Api/Sharees.php
index e6e68e0b..2755f93c 100644
--- a/lib/Api/Sharees.php
+++ b/lib/Api/Sharees.php
@@ -34,6 +34,14 @@ use OCA\Circles\Service\MiscService;
use OCP\Share;
+/**
+ * ############### WARNING #################
+ * ###
+ * ### This file is needed and used by Nextcloud 12 and lower.
+ * ###
+ *
+ * @package OCA\Circles\Api
+ */
class Sharees {
@@ -53,9 +61,12 @@ class Sharees {
// public static function search($search, $limit, $offset) {
public static function search($search) {
$c = self::getContainer();
+ $userId = \OC::$server->getUserSession()
+ ->getUser()
+ ->getUID();
$data = $c->query(CirclesService::class)
- ->listCircles(Circle::CIRCLES_ALL, $search, Member::LEVEL_MEMBER);
+ ->listCircles($userId, Circle::CIRCLES_ALL, $search, Member::LEVEL_MEMBER);
$result = array(
'exact' => ['circles'],
'circles' => []
diff --git a/lib/Api/v1/Circles.php b/lib/Api/v1/Circles.php
index bbb08d9e..104af315 100644
--- a/lib/Api/v1/Circles.php
+++ b/lib/Api/v1/Circles.php
@@ -167,14 +167,21 @@ class Circles {
* @param mixed $type
* @param string $name
* @param int $level
+ * @param string $userId
*
* @return Circle[]
*/
- public static function listCircles($type, $name = '', $level = 0) {
+ public static function listCircles($type, $name = '', $level = 0, $userId = '') {
$c = self::getContainer();
+ if ($userId === '') {
+ $userId = \OC::$server->getUserSession()
+ ->getUser()
+ ->getUID();
+ }
+
return $c->query(CirclesService::class)
- ->listCircles($type, $name, $level);
+ ->listCircles($userId, $type, $name, $level);
}
@@ -183,10 +190,32 @@ class Circles {
*
* Return all the circle the current user is a member.
*
+ * @param string $userId
+ *
* @return Circle[]
*/
- public static function joinedCircles() {
- return self::listCircles(Circle::CIRCLES_ALL, '', Member::LEVEL_MEMBER);
+ public static function joinedCircles($userId = '') {
+ return self::listCircles(Circle::CIRCLES_ALL, '', Member::LEVEL_MEMBER, $userId);
+ }
+
+
+ /**
+ * Circles::joinedCircleIds();
+ *
+ * Return all the circleIds the user is a member, if empty user, using current user.
+ *
+ * @param $userId
+ *
+ * @return array
+ */
+ public static function joinedCircleIds($userId = '') {
+ $circleIds = [];
+ $circles = self::listCircles(Circle::CIRCLES_ALL, '', Member::LEVEL_MEMBER, $userId);
+ foreach ($circles as $circle) {
+ $circleIds[] = $circle->getUniqueId();
+ }
+
+ return $circleIds;
}
@@ -358,6 +387,24 @@ class Circles {
/**
+ * Circles::getSharesFromCircle();
+ *
+ * This function will returns all item (array) shared to a specific circle identified by its Id,
+ * source and type. Limited to current user session.
+ *
+ * @param string $circleUniqueId
+ *
+ * @return mixed
+ */
+ public static function getSharesFromCircle($circleUniqueId) {
+ $c = self::getContainer();
+
+ return $c->query(SharingFrameService::class)
+ ->getFrameFromCircle($circleUniqueId);
+ }
+
+
+ /**
* Circles::linkCircle();
*
* Initiate a link procedure. Current user must be at least Admin of the circle.
diff --git a/lib/Api/v1/ShotgunCircles.php b/lib/Api/v1/ShotgunCircles.php
new file mode 100644
index 00000000..7ea575bc
--- /dev/null
+++ b/lib/Api/v1/ShotgunCircles.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Circles - Bring cloud-users closer together.
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2017
+ * @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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Circles\Api\v1;
+
+
+use OCA\Circles\AppInfo\Application;
+use OCA\Circles\Exceptions\ApiVersionIncompatibleException;
+use OCA\Circles\Model\Circle;
+use OCA\Circles\Model\FederatedLink;
+use OCA\Circles\Model\Member;
+use OCA\Circles\Model\SharingFrame;
+use OCA\Circles\Service\CirclesService;
+use OCA\Circles\Service\FederatedLinkService;
+use OCA\Circles\Service\MembersService;
+use OCA\Circles\Service\MiscService;
+use OCA\Circles\Service\SharingFrameService;
+use OCP\Util;
+
+/**
+ * Better use the other one.
+ *
+ * This is a shotgun class; don't blow your foot.
+ */
+class ShotgunCircles {
+
+ protected static function getContainer() {
+ $app = new Application();
+
+ return $app->getContainer();
+ }
+
+
+ /**
+ * ShotgunCircles::getSharesFromCircle();
+ *
+ * This function will returns all item (array) shared to a specific circle identified by its Id,
+ * source and type.
+ *
+ * Warning - please use Circles::getSharesFromCircle for any interaction with the current user
+ * session.
+ *
+ * @param string $circleUniqueId
+ * @param string $userId
+ *
+ * @return SharingFrame[]
+ */
+ public static function getSharesFromCircle($circleUniqueId, $userId = '') {
+ $c = self::getContainer();
+
+ return $c->query(SharingFrameService::class)
+ ->forceGetFrameFromCircle($circleUniqueId, $userId);
+ }
+
+
+} \ No newline at end of file