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

github.com/nextcloud/polls.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Controller/SubscriptionController.php')
-rw-r--r--lib/Controller/SubscriptionController.php41
1 files changed, 14 insertions, 27 deletions
diff --git a/lib/Controller/SubscriptionController.php b/lib/Controller/SubscriptionController.php
index 8a5bf445..e90f4a66 100644
--- a/lib/Controller/SubscriptionController.php
+++ b/lib/Controller/SubscriptionController.php
@@ -25,29 +25,27 @@ namespace OCA\Polls\Controller;
use Exception;
use OCP\AppFramework\Db\DoesNotExistException;
-use OCP\AppFramework\Db\MultipleObjectsReturnedException;
+use OCA\Polls\Exceptions\NotAuthorizedException;
use OCP\IRequest;
use OCP\ILogger;
-
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
-use OCA\Polls\Db\Subscription;
-use OCA\Polls\Db\SubscriptionMapper;
+use OCA\Polls\Service\SubscriptionService;
class SubscriptionController extends Controller {
private $userId;
- private $mapper;
+ private $subscriptionService;
private $logger;
/**
* SubscriptionController constructor.
* @param string $appName
* @param $UserId
- * @param SubscriptionMapper $mapper
+ * @param SubscriptionService $subscriptionService
* @param IRequest $request
* @param ILogger $logger
*/
@@ -55,14 +53,14 @@ class SubscriptionController extends Controller {
public function __construct(
string $appName,
$userId,
- SubscriptionMapper $mapper,
+ SubscriptionService $subscriptionService,
IRequest $request,
ILogger $logger
) {
parent::__construct($appName, $request);
$this->userId = $userId;
- $this->mapper = $mapper;
+ $this->subscriptionService = $subscriptionService;
$this->logger = $logger;
}
@@ -73,19 +71,13 @@ class SubscriptionController extends Controller {
* @return DataResponse
*/
public function get($pollId) {
-
- if (!\OC::$server->getUserSession()->isLoggedIn()) {
- return new DataResponse(null, Http::STATUS_UNAUTHORIZED);
- }
-
try {
- $this->mapper->findByUserAndPoll($pollId, $this->userId);
- } catch (MultipleObjectsReturnedException $e) {
- // should not happen, but who knows
+ return new DataResponse($this->subscriptionService->get($pollId), Http::STATUS_OK);
+ } catch (NotAuthorizedException $e) {
+ return new DataResponse(['error' => $e->getMessage()], $e->getStatus());
} catch (DoesNotExistException $e) {
- return new DataResponse(null, Http::STATUS_NOT_FOUND);
+ return new DataResponse(['status' => 'Not subscribed'], Http::STATUS_NOT_FOUND);
}
- return new DataResponse(null, Http::STATUS_OK);
}
/**
@@ -94,15 +86,10 @@ class SubscriptionController extends Controller {
* @param integer $pollId
*/
public function set($pollId, $subscribed) {
- if ($subscribed) {
- $subscription = new Subscription();
- $subscription->setPollId($pollId);
- $subscription->setUserId($this->userId);
- $this->mapper->insert($subscription);
- return true;
- } else {
- $this->mapper->unsubscribe($pollId, $this->userId);
- return false;
+ try {
+ return new DataResponse($this->subscriptionService->set($pollId, $subscribed), Http::STATUS_OK);
+ } catch (NotAuthorizedException $e) {
+ return new DataResponse(['error' => $e->getMessage()], $e->getStatus());
}
}
}