diff options
Diffstat (limited to 'lib/Service/VoteService.php')
-rw-r--r-- | lib/Service/VoteService.php | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/lib/Service/VoteService.php b/lib/Service/VoteService.php index f867c46f..415517c1 100644 --- a/lib/Service/VoteService.php +++ b/lib/Service/VoteService.php @@ -32,12 +32,22 @@ use OCA\Polls\Db\OptionMapper; use OCA\Polls\Db\VoteMapper; use OCA\Polls\Db\PollMapper; use OCA\Polls\Db\Vote; +use OCA\Polls\Db\Watch; use OCA\Polls\Model\Acl; class VoteService { - /** @var VoteMapper */ - private $voteMapper; + /** @var Acl */ + private $acl; + + /** @var AnonymizeService */ + private $anonymizer; + + /** @var LogService */ + private $logService; + + /** @var OptionMapper */ + private $optionMapper; /** @var PollMapper */ private $pollMapper; @@ -45,34 +55,31 @@ class VoteService { /** @var Vote */ private $vote; - /** @var OptionMapper */ - private $optionMapper; - - /** @var AnonymizeService */ - private $anonymizer; + /** @var VoteMapper */ + private $voteMapper; - /** @var LogService */ - private $logService; + /** @var WatchService */ + private $watchService; - /** @var Acl */ - private $acl; public function __construct( - VoteMapper $voteMapper, - PollMapper $pollMapper, - Vote $vote, - OptionMapper $optionMapper, + Acl $acl, AnonymizeService $anonymizer, LogService $logService, - Acl $acl + OptionMapper $optionMapper, + PollMapper $pollMapper, + Vote $vote, + VoteMapper $voteMapper, + WatchService $watchService ) { - $this->voteMapper = $voteMapper; - $this->pollMapper = $pollMapper; - $this->vote = $vote; - $this->optionMapper = $optionMapper; + $this->acl = $acl; $this->anonymizer = $anonymizer; $this->logService = $logService; - $this->acl = $acl; + $this->optionMapper = $optionMapper; + $this->pollMapper = $pollMapper; + $this->vote = $vote; + $this->voteMapper = $voteMapper; + $this->watchService = $watchService; } /** @@ -172,7 +179,8 @@ class VoteService { $this->vote->setVoteAnswer($setTo); $this->voteMapper->insert($this->vote); } - $this->logService->setLog($this->acl->getPollId(), Log::MSG_ID_SETVOTE, $this->vote->getUserId()); + $this->logService->setLog($this->vote->getPollId(), Log::MSG_ID_SETVOTE, $this->vote->getUserId()); + $this->watchService->writeUpdate($this->vote->getPollId(), Watch::OBJECT_VOTES); return $this->vote; } @@ -182,6 +190,7 @@ class VoteService { public function delete(int $pollId, string $userId): string { $this->acl->setPollId($pollId)->request(Acl::PERMISSION_EDIT); $this->voteMapper->deleteByPollAndUser($pollId, $userId); + $this->watchService->writeUpdate($pollId, Watch::OBJECT_VOTES); return $userId; } } |