diff options
Diffstat (limited to 'lib/Service/ShareService.php')
-rw-r--r-- | lib/Service/ShareService.php | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/lib/Service/ShareService.php b/lib/Service/ShareService.php index ae14935a..cba983d6 100644 --- a/lib/Service/ShareService.php +++ b/lib/Service/ShareService.php @@ -24,20 +24,19 @@ namespace OCA\Polls\Service; use OCA\Polls\Exceptions\NotAuthorizedException; -use OCA\Polls\Exceptions\InvalidUsername; use OCA\Polls\Exceptions\InvalidShareType; use OCP\Security\ISecureRandom; -use OCA\Polls\Controller\SystemController; +use OCA\Polls\Service\SystemService; use OCA\Polls\Db\ShareMapper; use OCA\Polls\Db\Share; use OCA\Polls\Model\Acl; class ShareService { - /** @var SystemController */ - private $systemController; + /** @var SystemService */ + private $systemService; /** @var ShareMapper */ private $shareMapper; @@ -53,20 +52,20 @@ class ShareService { /** * ShareController constructor. - * @param SystemController $systemController + * @param SystemService $systemService * @param ShareMapper $shareMapper * @param Share $share * @param MailService $mailService * @param Acl $acl */ public function __construct( - SystemController $systemController, + SystemService $systemService, ShareMapper $shareMapper, Share $share, MailService $mailService, Acl $acl ) { - $this->systemController = $systemController; + $this->systemService = $systemService; $this->shareMapper = $shareMapper; $this->share = $share; $this->mailService = $mailService; @@ -142,12 +141,12 @@ class ShareService { * @param string $token * @param string $emailAddress * @return Share - * @throws NotAuthorizedException + * @throws InvalidShareType */ public function setEmailAddress($token, $emailAddress) { $this->share = $this->shareMapper->findByToken($token); if ($this->share->getType() === 'external') { - // TODO: Simple validate email address + $this->systemService->validateEmailAddress($emailAddress); $this->share->setUserEmail($emailAddress); // TODO: Send confirmation return $this->shareMapper->update($this->share); @@ -164,17 +163,14 @@ class ShareService { * @param string $userName * @return Share * @throws NotAuthorizedException - * @throws InvalidUsername */ - public function personal($token, $userName, $emailAddress) { + public function personal($token, $userName, $emailAddress = '') { $this->share = $this->shareMapper->findByToken($token); - // Return of validatePublicUsername is a DataResponse - $checkUsername = $this->systemController->validatePublicUsername($this->share->getPollId(), $userName, $token); + $this->systemService->validatePublicUsername($this->share->getPollId(), $userName, $token); - // if status is not 200, return DataResponse from validatePublicUsername - if ($checkUsername->getStatus() !== 200) { - throw new InvalidUsername; + if ($emailAddress) { + $this->systemService->validateEmailAddress($emailAddress); } if ($this->share->getType() === 'public') { |