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/OptionController.php')
-rw-r--r--lib/Controller/OptionController.php176
1 files changed, 17 insertions, 159 deletions
diff --git a/lib/Controller/OptionController.php b/lib/Controller/OptionController.php
index 0c20b768..0ec24092 100644
--- a/lib/Controller/OptionController.php
+++ b/lib/Controller/OptionController.php
@@ -24,98 +24,34 @@
namespace OCA\Polls\Controller;
use Exception;
-use OCP\AppFramework\Db\DoesNotExistException;
use OCP\IRequest;
-use OCP\ILogger;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
-use OCP\IGroupManager;
-use OCP\Security\ISecureRandom;
+use OCA\Polls\Exceptions\NotAuthorizedException;
-use OCA\Polls\Db\Poll;
-use OCA\Polls\Db\PollMapper;
-use OCA\Polls\Db\Option;
-use OCA\Polls\Db\OptionMapper;
-use OCA\Polls\Service\LogService;
-use OCA\Polls\Model\Acl;
+use OCA\Polls\Service\OptionService;
class OptionController extends Controller {
- private $userId;
- private $optionMapper;
- private $options;
- private $option;
- private $groupManager;
- private $pollMapper;
- private $logger;
- private $logService;
- private $acl;
+ private $optionService;
/**
* OptionController constructor.
* @param string $appName
- * @param $UserId
* @param IRequest $request
- * @param ILogger $logger
- * @param OptionMapper $optionMapper
- * @param IGroupManager $groupManager
- * @param PollMapper $pollMapper
- * @param LogService $logService
- * @param Acl $acl
+ * @param OptionService $optionService
*/
public function __construct(
string $appName,
- $UserId,
IRequest $request,
- OptionMapper $optionMapper,
- Option $option,
- IGroupManager $groupManager,
- PollMapper $pollMapper,
- ILogger $logger,
- LogService $logService,
- Acl $acl
+ OptionService $optionService
) {
parent::__construct($appName, $request);
- $this->userId = $UserId;
- $this->optionMapper = $optionMapper;
- $this->option = $option;
- $this->groupManager = $groupManager;
- $this->pollMapper = $pollMapper;
- $this->logger = $logger;
- $this->logService = $logService;
- $this->acl = $acl;
- }
-
- /**
- * Set properties from option array
- * @NoAdminRequired
- * @param integer $pollId
- * @return array Array of Option objects
- */
- private function set($option) {
-
- $this->option->setPollId($option['pollId']);
- $this->option->setPollOptionText(trim(htmlspecialchars($option['pollOptionText'])));
- $this->option->setTimestamp($option['timestamp']);
-
- if ($option['timestamp']) {
- $this->option->setOrder($option['timestamp']);
- } else {
- $this->option->setOrder($option['order']);
- }
-
- if ($option['confirmed']) {
- // do not update confirmation date, if option is already confirmed
- if (!$this->option->getConfirmed()) {
- $this->option->setConfirmed(time());
- }
- } else {
- $this->option->setConfirmed(0);
- }
+ $this->optionService = $optionService;
}
/**
@@ -123,22 +59,10 @@ class OptionController extends Controller {
* @NoAdminRequired
* @NoCSRFRequired
* @param integer $pollId
- * @return array Array of Option objects
+ * @return DataResponse
*/
- public function get($pollId) {
-
- try {
-
- if (!$this->acl->getFoundByToken()) {
- $this->acl->setPollId($pollId);
- }
-
- $this->options = $this->optionMapper->findByPoll($pollId);
-
- return new DataResponse($this->options, Http::STATUS_OK);
- } catch (DoesNotExistException $e) {
- return new DataResponse($e, Http::STATUS_NOT_FOUND);
- }
+ public function list($pollId) {
+ return new DataResponse($this->optionService->list($pollId), Http::STATUS_OK);
}
@@ -152,64 +76,29 @@ class OptionController extends Controller {
* @return DataResponse
*/
public function getByToken($token) {
-
- try {
- $this->acl->setToken($token);
- // return $this->get($this->acl->getPollId());
- $this->options = $this->optionMapper->findByPoll($this->acl->getPollId());
- return new DataResponse($this->options, Http::STATUS_OK);
-
- } catch (DoesNotExistException $e) {
- return new DataResponse($e, Http::STATUS_NOT_FOUND);
- }
+ return new DataResponse($this->optionService->list(0, $token), Http::STATUS_OK);
}
/**
* Add a new Option to poll
* @NoAdminRequired
* @NoCSRFRequired
- * @param Option $option
+ * @param array $option
* @return DataResponse
*/
public function add($option) {
-
- if (!$this->acl->setPollId($option['pollId'])->getAllowEdit()) {
- return new DataResponse(null, Http::STATUS_UNAUTHORIZED);
- }
-
- try {
- $this->option = new Option();
- $this->set($option);
- $this->optionMapper->insert($this->option);
- $this->logService->setLog($option['pollId'], 'addOption');
- return new DataResponse($this->option, Http::STATUS_OK);
- } catch (Exception $e) {
- return new DataResponse($e, Http::STATUS_NOT_FOUND);
- }
+ return new DataResponse($this->optionService->add($option), Http::STATUS_OK);
}
/**
* Update poll option
* @NoAdminRequired
* @NoCSRFRequired
- * @param Option $option
+ * @param array $option
* @return DataResponse
*/
public function update($option) {
-
- if (!$this->acl->setPollId($option['pollId'])->getAllowEdit()) {
- return new DataResponse(null, Http::STATUS_UNAUTHORIZED);
- }
-
- try {
- $this->option = $this->optionMapper->find($option['id']);
- $this->set($option);
- $this->optionMapper->update($this->option);
- $this->logService->setLog($option['pollId'], 'updateOption');
- return new DataResponse($this->option, Http::STATUS_OK);
- } catch (Exception $e) {
- return new DataResponse($e, Http::STATUS_NOT_FOUND);
- }
+ return new DataResponse($this->optionService->update($option), Http::STATUS_OK);
}
/**
@@ -220,49 +109,18 @@ class OptionController extends Controller {
* @return DataResponse
*/
public function remove($option) {
- try {
-
- if (!$this->acl->setPollId($option['pollId'])->getAllowEdit()) {
- return new DataResponse(null, Http::STATUS_UNAUTHORIZED);
- }
-
- $this->optionMapper->remove($option['id']);
- $this->logService->setLog($option['pollId'], 'deleteOption');
-
- return new DataResponse(array(
- 'action' => 'deleted',
- 'optionId' => $option['id']
- ), Http::STATUS_OK);
-
- } catch (Exception $e) {
- return new DataResponse($e, Http::STATUS_NOT_FOUND);
- }
-
+ return new DataResponse($this->optionService->delete($option['id']), Http::STATUS_OK);
}
/**
* Set order by order of the given array
* @NoAdminRequired
* @NoCSRFRequired
+ * @param integer $pollId
* @param Array $options
* @return DataResponse
*/
public function reorder($pollId, $options) {
- $i = 0;
-
- if (!$this->acl->setPollId($pollId)->getAllowEdit()) {
- return new DataResponse(null, Http::STATUS_UNAUTHORIZED);
- }
-
- foreach ($options as $option) {
- $this->option = $this->optionMapper->find($option['id']);
- if ($pollId === intval($this->option->getPollId())) {
- $this->option->setOrder(++$i);
- $this->optionMapper->update($this->option);
- }
- }
-
- return $this->get($pollId);
-
+ return new DataResponse($this->optionService->reorder($pollId, $options), Http::STATUS_OK);
}
}