diff --git a/appinfo/routes.php b/appinfo/routes.php index e966abbf0..1abe4c0f6 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -12,6 +12,7 @@ // LocalController ['name' => 'Local#circles', 'url' => '/circles', 'verb' => 'GET'], + ['name' => 'Local#probeCircles', 'url' => '/probecircles', 'verb' => 'GET'], ['name' => 'Local#create', 'url' => '/circles', 'verb' => 'POST'], ['name' => 'Local#destroy', 'url' => '/circles/{circleId}', 'verb' => 'DELETE'], ['name' => 'Local#search', 'url' => '/search', 'verb' => 'GET'], diff --git a/lib/Controller/LocalController.php b/lib/Controller/LocalController.php index 3ce9f4ac4..dc8e4a096 100644 --- a/lib/Controller/LocalController.php +++ b/lib/Controller/LocalController.php @@ -423,6 +423,34 @@ public function circles(int $limit = -1, int $offset = 0): DataResponse { } + /** + * @NoAdminRequired + * + * @param int $limit + * @param int $offset + * + * @return DataResponse + * @throws OCSException + */ + public function probeCircles(int $limit = -1, int $offset = 0): DataResponse { + try { + $this->setCurrentFederatedUser(); + + $probe = new CircleProbe(); + $probe->filterHiddenCircles() + ->filterBackendCircles() + ->addDetail(BasicProbe::DETAILS_POPULATION) + ->setItemsLimit($limit) + ->setItemsOffset($offset); + + return new DataResponse($this->serializeArray($this->circleService->probeCircles($probe))); + } catch (Exception $e) { + $this->e($e); + throw new OCSException($e->getMessage(), (int)$e->getCode()); + } + } + + /** * @NoAdminRequired *