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
path: root/lib
diff options
context:
space:
mode:
authordartcafe <github@dartcafe.de>2020-06-27 20:22:17 +0300
committerdartcafe <github@dartcafe.de>2020-06-27 20:22:17 +0300
commit40b2720d0d1c74ed3a2a12497185d47fb0b7ab29 (patch)
treebb3980a11cfd102d2205b5c38ad5799250a951ba /lib
parentfd1779a07d81d21f5ba186de522a862693bd3677 (diff)
some polish
Diffstat (limited to 'lib')
-rw-r--r--lib/AppInfo/Application.php13
-rw-r--r--lib/Controller/CommentApiController.php8
-rw-r--r--lib/Controller/OptionApiController.php8
-rw-r--r--lib/Controller/PollApiController.php14
-rw-r--r--lib/Controller/PollController.php95
-rw-r--r--lib/Controller/ShareApiController.php8
-rw-r--r--lib/Controller/VoteApiController.php4
-rw-r--r--lib/Db/Poll.php14
-rw-r--r--lib/Service/PollService.php84
9 files changed, 137 insertions, 111 deletions
diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php
index 7a88db86..53922944 100644
--- a/lib/AppInfo/Application.php
+++ b/lib/AppInfo/Application.php
@@ -23,19 +23,6 @@
namespace OCA\Polls\AppInfo;
-// use OCA\Polls\Controller\PageController;
-// use OCA\Polls\Controller\ApiController;
-// use OCA\Polls\Controller\CommentController;
-// use OCA\Polls\Controller\PollController;
-// use OCA\Polls\Controller\NotificationController;
-// use OCA\Polls\Controller\OptionController;
-// use OCA\Polls\Controller\VoteController;
-// use OCA\Polls\Controller\ShareController;
-// use OCA\Polls\Db\OptionMapper;
-// use OCA\Polls\Db\PollMapper;
-// use OCA\Polls\Db\NotificationMapper;
-// use OCA\Polls\Db\VoteMapper;
-// use OCA\Polls\Db\ShareMapper;
use OCP\AppFramework\App;
use OCP\IContainer;
diff --git a/lib/Controller/CommentApiController.php b/lib/Controller/CommentApiController.php
index ad09654d..6cc56bba 100644
--- a/lib/Controller/CommentApiController.php
+++ b/lib/Controller/CommentApiController.php
@@ -72,7 +72,7 @@ class CommentApiController extends ApiController {
*/
public function list($pollId) {
try {
- return new DataResponse($this->commentService->list($pollId), Http::STATUS_OK);
+ return new DataResponse(['comments' => $this->commentService->list($pollId)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Poll with id ' . $pollId . ' not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -91,7 +91,7 @@ class CommentApiController extends ApiController {
*/
public function add($pollId, $message) {
try {
- return new DataResponse($this->commentService->add($pollId, $message), Http::STATUS_CREATED);
+ return new DataResponse(['comment' => $this->commentService->add($pollId, $message)], Http::STATUS_CREATED);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Poll with id ' . $pollId . ' not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -109,9 +109,9 @@ class CommentApiController extends ApiController {
*/
public function delete($commentId) {
try {
- return new DataResponse($this->commentService->delete($commentId), Http::STATUS_OK);
+ return new DataResponse(['comment' => $this->commentService->delete($commentId)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
- return new DataResponse(['error' => 'Comment does not exist'], Http::STATUS_NOT_FOUND);
+ return new DataResponse(['error' => 'Comment id ' . $commentId . ' does not exist'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
return new DataResponse(['error' => $e->getMessage()], $e->getStatus());
}
diff --git a/lib/Controller/OptionApiController.php b/lib/Controller/OptionApiController.php
index 5809510d..e3396a3e 100644
--- a/lib/Controller/OptionApiController.php
+++ b/lib/Controller/OptionApiController.php
@@ -70,7 +70,7 @@ class OptionApiController extends ApiController {
*/
public function list($pollId) {
try {
- return new DataResponse($this->optionService->list($pollId), Http::STATUS_OK);
+ return new DataResponse(['options' => $this->optionService->list($pollId)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Poll with id ' . $pollId . ' not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -97,7 +97,7 @@ class OptionApiController extends ApiController {
];
try {
- return new DataResponse($this->optionService->add($option), Http::STATUS_CREATED);
+ return new DataResponse(['option' => $this->optionService->add($option)], Http::STATUS_CREATED);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Poll with id ' . $pollId . ' not found'], Http::STATUS_NOT_FOUND);
} catch (UniqueConstraintViolationException $e) {
@@ -118,7 +118,7 @@ class OptionApiController extends ApiController {
*/
public function update($option) {
try {
- return new DataResponse($this->optionService->update($option), Http::STATUS_OK);
+ return new DataResponse(['option' => $this->optionService->update($option)], Http::STATUS_OK);
} catch (NotAuthorizedException $e) {
return new DataResponse(['error' => $e->getMessage()], $e->getStatus());
}
@@ -134,7 +134,7 @@ class OptionApiController extends ApiController {
*/
public function delete($optionId) {
try {
- return new DataResponse($this->optionService->delete($optionId), Http::STATUS_OK);
+ return new DataResponse(['option' => $this->optionService->delete($optionId)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Option does not exist'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
diff --git a/lib/Controller/PollApiController.php b/lib/Controller/PollApiController.php
index 3dcca2dd..3c8acc9d 100644
--- a/lib/Controller/PollApiController.php
+++ b/lib/Controller/PollApiController.php
@@ -75,7 +75,7 @@
public function list() {
try {
- return new DataResponse($this->pollService->list(), Http::STATUS_OK);
+ return new DataResponse(['polls' => $this->pollService->list()], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse([], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -93,7 +93,7 @@
*/
public function get($pollId) {
try {
- return new DataResponse($this->pollService->get($pollId), Http::STATUS_OK);
+ return new DataResponse(['poll' => $this->pollService->get($pollId)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -111,7 +111,7 @@
public function add($type, $title) {
try {
- return new DataResponse($this->pollService->add($type, $title), Http::STATUS_CREATED);
+ return new DataResponse(['poll' => $this->pollService->add($type, $title)], Http::STATUS_CREATED);
} catch (NotAuthorizedException $e) {
return new DataResponse(['error' => $e->getMessage()], $e->getStatus());
} catch (InvalidPollTypeException $e) {
@@ -131,7 +131,7 @@
public function update($pollId, $poll) {
try {
- return new DataResponse($this->pollService->update($pollId, $poll), Http::STATUS_OK);
+ return new DataResponse(['poll' => $this->pollService->update($pollId, $poll)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Poll not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -155,7 +155,7 @@
public function delete($pollId) {
try {
- return new DataResponse($this->pollService->delete($pollId), Http::STATUS_OK);
+ return new DataResponse(['poll' => $this->pollService->delete($pollId)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Poll not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -173,7 +173,7 @@
public function deletePermanently($pollId) {
try {
- return new DataResponse($this->pollService->deletePermanently($pollId), Http::STATUS_OK);
+ return new DataResponse(['poll' => $this->pollService->deletePermanently($pollId)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Poll not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -191,7 +191,7 @@
*/
public function clone($pollId) {
try {
- return new DataResponse($this->pollService->clone($pollId), Http::STATUS_CREATED);
+ return new DataResponse(['poll' => $this->pollService->clone($pollId)], Http::STATUS_CREATED);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Poll not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
diff --git a/lib/Controller/PollController.php b/lib/Controller/PollController.php
index aa4a5899..071dde17 100644
--- a/lib/Controller/PollController.php
+++ b/lib/Controller/PollController.php
@@ -38,11 +38,21 @@ use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCA\Polls\Service\PollService;
+use OCA\Polls\Service\CommentService;
+use OCA\Polls\Service\OptionService;
+use OCA\Polls\Service\ShareService;
+use OCA\Polls\Service\VoteService;
+use OCA\Polls\Model\Acl;
- class PollController extends Controller {
+class PollController extends Controller {
- private $logger;
- private $pollService;
+ private $logger;
+ private $pollService;
+ private $commentService;
+ private $optionService;
+ private $shareService;
+ private $voteService;
+ private $acl;
/**
* PollController constructor.
@@ -50,18 +60,33 @@ use OCA\Polls\Service\PollService;
* @param IRequest $request
* @param ILogger $logger
* @param PollService $pollService
- */
+ * @param CommentService $commentService
+ * @param OptionService $optionService
+ * @param ShareService $shareService
+ * @param VoteService $voteService
+ * @param Acl $acl
+ */
public function __construct(
string $appName,
IRequest $request,
ILogger $logger,
- PollService $pollService
- ) {
+ PollService $pollService,
+ CommentService $commentService,
+ OptionService $optionService,
+ ShareService $shareService,
+ VoteService $voteService,
+ Acl $acl
+ ) {
parent::__construct($appName, $request);
- $this->pollService = $pollService;
- $this->logger = $logger;
- }
+ $this->logger = $logger;
+ $this->pollService = $pollService;
+ $this->commentService = $commentService;
+ $this->optionService = $optionService;
+ $this->shareService = $shareService;
+ $this->voteService = $voteService;
+ $this->acl = $acl;
+ }
/**
@@ -92,12 +117,54 @@ use OCA\Polls\Service\PollService;
*/
public function get($pollId, $token) {
try {
- return new DataResponse($this->pollService->get($pollId, $token), Http::STATUS_OK);
+ if ($token) {
+ $poll = $this->pollService->get(0, $token);
+ $acl = $this->acl->setToken($token);
+ } else {
+ $poll = $this->pollService->get($pollId);
+ $acl = $this->acl->setPollId($pollId);
+ }
+
+ // $this->poll = $this->pollService->get($pollId, $token);
+ // return new DataResponse($this->pollService->get($pollId, $token), Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
return new DataResponse(['error' => $e->getMessage()], $e->getStatus());
}
+
+ try {
+ $comments = $this->commentService->list($pollId, $token);
+ } catch (Exception $e) {
+ $comments = [];
+ }
+
+ try {
+ $options = $this->optionService->list($pollId, $token);
+ } catch (Exception $e) {
+ $options = [];
+ }
+
+ try {
+ $votes = $this->voteService->list($pollId, $token);
+ } catch (Exception $e) {
+ $votes = [];
+ }
+
+ try {
+ $shares = $this->shareService->list($pollId);
+ } catch (Exception $e) {
+ $shares = [];
+ }
+
+ return new DataResponse([
+ 'acl' => $acl,
+ 'poll' => $poll,
+ 'comments' => $comments,
+ 'options' => $options,
+ 'shares' => $shares,
+ 'votes' => $votes
+ ], Http::STATUS_OK);
}
/**
@@ -138,10 +205,11 @@ use OCA\Polls\Service\PollService;
/**
- * write
+ * add
* @NoAdminRequired
* @NoCSRFRequired
- * @param Array $poll
+ * @param string $type
+ * @param string $title
* @return DataResponse
*/
@@ -161,7 +229,8 @@ use OCA\Polls\Service\PollService;
* write
* @NoAdminRequired
* @NoCSRFRequired
- * @param Array $poll
+ * @param integer $pollId
+ * @param array $poll
* @return DataResponse
*/
diff --git a/lib/Controller/ShareApiController.php b/lib/Controller/ShareApiController.php
index 4f147fad..cceb7aa6 100644
--- a/lib/Controller/ShareApiController.php
+++ b/lib/Controller/ShareApiController.php
@@ -71,7 +71,7 @@ class ShareApiController extends ApiController {
*/
public function list($pollId) {
try {
- return new DataResponse($this->shareService->list($pollId), Http::STATUS_OK);
+ return new DataResponse(['shares' => $this->shareService->list($pollId)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'No shares for poll with id ' . $pollId . ' not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -90,7 +90,7 @@ class ShareApiController extends ApiController {
*/
public function get($token) {
try {
- return new DataResponse($this->shareService->get($token), Http::STATUS_OK);
+ return new DataResponse(['share' => $this->shareService->get($token)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Token ' . $token . ' not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -111,7 +111,7 @@ class ShareApiController extends ApiController {
*/
public function add($pollId, $type, $userId = '', $userEmail = '') {
try {
- return new DataResponse($this->shareService->add($pollId, $type, $userId, $userEmail), Http::STATUS_CREATED);
+ return new DataResponse(['share' => $this->shareService->add($pollId, $type, $userId, $userEmail)], Http::STATUS_CREATED);
} catch (\Exception $e) {
return new DataResponse(['error' => $e], Http::STATUS_CONFLICT);
} catch (NotAuthorizedException $e) {
@@ -131,7 +131,7 @@ class ShareApiController extends ApiController {
public function delete($token) {
try {
- return new DataResponse($this->shareService->remove($token), Http::STATUS_OK);
+ return new DataResponse(['share' => $this->shareService->remove($token)], Http::STATUS_OK);
} catch (NotAuthorizedException $e) {
return new DataResponse(['error' => $e->getMessage()], $e->getStatus());
} catch (Exception $e) {
diff --git a/lib/Controller/VoteApiController.php b/lib/Controller/VoteApiController.php
index 03caea0f..21d7762d 100644
--- a/lib/Controller/VoteApiController.php
+++ b/lib/Controller/VoteApiController.php
@@ -73,7 +73,7 @@ class VoteApiController extends ApiController {
*/
public function list($pollId) {
try {
- return new DataResponse($this->voteService->list($pollId), Http::STATUS_OK);
+ return new DataResponse(['votes' => $this->voteService->list($pollId)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'No votes'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
@@ -94,7 +94,7 @@ class VoteApiController extends ApiController {
*/
public function set($pollId, $pollOptionText, $setTo) {
try {
- return new DataResponse($this->voteService->set($pollId, $pollOptionText, $setTo), Http::STATUS_OK);
+ return new DataResponse(['vote' => $this->voteService->set($pollId, $pollOptionText, $setTo)], Http::STATUS_OK);
} catch (DoesNotExistException $e) {
return new DataResponse(['error' => 'Option not found'], Http::STATUS_NOT_FOUND);
} catch (NotAuthorizedException $e) {
diff --git a/lib/Db/Poll.php b/lib/Db/Poll.php
index 55b12fa2..8fa2d056 100644
--- a/lib/Db/Poll.php
+++ b/lib/Db/Poll.php
@@ -135,6 +135,20 @@ class Poll extends Entity implements JsonSerializable {
];
}
+ public function deserializeArray($array) {
+ $this->setTitle(isset($array['title']) ? $array['title'] : $this->getTitle());
+ $this->setDescription(isset($array['description']) ? $array['description'] : $this->getDescription());
+ $this->setAccess(isset($array['access']) ? $array['access'] : $this->getAccess());
+ $this->setExpire(isset($array['expire']) ? $array['expire'] : $this->getExpire());
+ $this->setAnonymous(isset($array['anonymous']) ? $array['anonymous'] : $this->getAnonymous());
+ $this->setAllowMaybe(isset($array['allowMaybe']) ? $array['allowMaybe'] : $this->getAllowMaybe());
+ $this->setVoteLimit(isset($array['voteLimit']) ? $array['voteLimit'] : $this->getVoteLimit());
+ $this->setShowResults(isset($array['showResults']) ? $array['showResults'] : $this->getShowResults());
+ $this->setDeleted(isset($array['deleted']) ? $array['deleted'] : $this->getDeleted());
+ $this->setAdminAccess(isset($array['adminAccess']) ? $array['adminAccess'] : $this->getAdminAccess());
+ return $this;
+ }
+
private function getDisplayName() {
if (\OC::$server->getUserManager()->get($this->owner) instanceof IUser) {
diff --git a/lib/Service/PollService.php b/lib/Service/PollService.php
index 31a6f36d..d23c8595 100644
--- a/lib/Service/PollService.php
+++ b/lib/Service/PollService.php
@@ -33,12 +33,8 @@
use OCP\ILogger;
- use OCA\Polls\Db\Poll;
use OCA\Polls\Db\PollMapper;
- use OCA\Polls\Service\CommentService;
- use OCA\Polls\Service\OptionService;
- use OCA\Polls\Service\ShareService;
- use OCA\Polls\Service\VoteService;
+ use OCA\Polls\Db\Poll;
use OCA\Polls\Service\LogService;
use OCA\Polls\Model\Acl;
@@ -48,20 +44,14 @@
private $pollMapper;
private $poll;
private $logService;
- private $commentService;
- private $optionService;
- private $shareService;
- private $voteService;
private $acl;
/**
* PollController constructor.
+ * @param ILogger $logger
* @param PollMapper $pollMapper
+ * @param Poll $poll
* @param LogService $logService
- * @param CommentService $commentService
- * @param OptionService $optionService
- * @param ShareService $shareService
- * @param VoteService $voteService
* @param Acl $acl
*/
@@ -70,20 +60,12 @@
PollMapper $pollMapper,
Poll $poll,
LogService $logService,
- CommentService $commentService,
- OptionService $optionService,
- ShareService $shareService,
- VoteService $voteService,
Acl $acl
) {
$this->logger = $logger;
$this->pollMapper = $pollMapper;
$this->poll = $poll;
$this->logService = $logService;
- $this->commentService = $commentService;
- $this->optionService = $optionService;
- $this->shareService = $shareService;
- $this->voteService = $voteService;
$this->acl = $acl;
}
@@ -120,47 +102,30 @@
* @param integer $pollId
* @return array
*/
- public function get($pollId = 0, $token = '') {
+ public function get($pollId) {
- if (!$this->acl->setPollIdOrToken($pollId, $token)->getAllowView()) {
+ if (!$this->acl->setPollId($pollId)->getAllowView()) {
throw new NotAuthorizedException;
}
- $this->poll = $this->pollMapper->find($this->acl->getPollId());
+ return $this->pollMapper->find($pollId);
- try {
- $comments = $this->commentService->list($this->poll->getId(), $token);
- } catch (Exception $e) {
- $comments = [];
- }
-
- try {
- $options = $this->optionService->list($this->poll->getId(), $token);
- } catch (Exception $e) {
- $options = [];
+ }
- }
+ /**
+ * get
+ * @NoAdminRequired
+ * @param integer $pollId
+ * @return array
+ */
+ public function getByToken($token) {
- try {
- $votes = $this->voteService->list($this->poll->getId(), $token);
- } catch (Exception $e) {
- $votes = [];
+ if (!$this->acl->setToken($token)->getAllowView()) {
+ throw new NotAuthorizedException;
}
- try {
- $shares = $this->shareService->list($this->poll->getId());
- } catch (Exception $e) {
- $shares = [];
- }
+ return $this->pollMapper->find($this->acl->getPollId());
- return [
- 'acl' => $this->acl,
- 'poll' => $this->poll,
- 'comments' => $comments,
- 'options' => $options,
- 'shares' => $shares,
- 'votes' => $votes
- ];
}
/**
@@ -212,7 +177,8 @@
* write
* @NoAdminRequired
* @NoCSRFRequired
- * @param Array $poll
+ * @param string $type
+ * @param string $title
* @return Poll
*/
@@ -282,17 +248,7 @@
if (isset($poll['title']) && !$poll['title']) {
throw new EmptyTitleException('Title must not be empty');
}
-
- $this->poll->setTitle($poll['title'] ? $poll['title'] : $this->poll->getTitle());
- $this->poll->setDescription(isset($poll['description']) ? $poll['description'] : $this->poll->getDescription());
- $this->poll->setAccess(isset($poll['access']) ? $poll['access'] : $this->poll->getAccess());
- $this->poll->setExpire(isset($poll['expire']) ? $poll['expire'] : $this->poll->getExpire());
- $this->poll->setAnonymous(isset($poll['anonymous']) ? $poll['anonymous'] : $this->poll->getAnonymous());
- $this->poll->setAllowMaybe(isset($poll['allowMaybe']) ? $poll['allowMaybe'] : $this->poll->getAllowMaybe());
- $this->poll->setVoteLimit(isset($poll['voteLimit']) ? $poll['voteLimit'] : $this->poll->getVoteLimit());
- $this->poll->setShowResults(isset($poll['showResults']) ? $poll['showResults'] : $this->poll->getShowResults());
- $this->poll->setDeleted(isset($poll['deleted']) ? $poll['deleted'] : $this->poll->getDeleted());
- $this->poll->setAdminAccess(isset($poll['adminAccess']) ? $poll['adminAccess'] : $this->poll->getAdminAccess());
+ $this->poll->deserializeArray($poll);
$this->pollMapper->update($this->poll);
$this->logService->setLog($this->poll->getId(), 'updatePoll');