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:
authordartcafe <github@dartcafe.de>2020-07-05 16:30:05 +0300
committerdartcafe <github@dartcafe.de>2020-07-05 16:30:05 +0300
commitf12db4606555121fc912a3185ad616c5dbdb057d (patch)
tree1a2b550af930b94031a368805a7229916ac28e7f /lib/Controller
parente515d58b6c7115950e01e0ada93d605c6a5b7dcb (diff)
extend controllers for indiviual invitation sending
Diffstat (limited to 'lib/Controller')
-rw-r--r--lib/Controller/ShareApiController.php22
-rw-r--r--lib/Controller/ShareController.php37
2 files changed, 49 insertions, 10 deletions
diff --git a/lib/Controller/ShareApiController.php b/lib/Controller/ShareApiController.php
index cceb7aa6..3d7912da 100644
--- a/lib/Controller/ShareApiController.php
+++ b/lib/Controller/ShareApiController.php
@@ -35,21 +35,25 @@ use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCA\Polls\Service\ShareService;
+use OCA\Polls\Service\MailService;
class ShareApiController extends ApiController {
private $shareService;
+ private $mailService;
/**
* ShareController constructor.
* @param string $appName
* @param string $userId
* @param IRequest $request
+ * @param MailService $mailService
* @param ShareService $shareService
*/
public function __construct(
string $appName,
IRequest $request,
+ MailService $mailService,
ShareService $shareService
) {
parent::__construct($appName,
@@ -58,6 +62,7 @@ class ShareApiController extends ApiController {
'Authorization, Content-Type, Accept',
1728000);
$this->shareService = $shareService;
+ $this->mailService = $mailService;
}
/**
@@ -121,6 +126,23 @@ class ShareApiController extends ApiController {
}
/**
+ * SendInvitation
+ * Sent invitation mails for a share
+ * @NoAdminRequired
+ * @CORS
+ * @NoCSRFRequired
+ * @param string $token
+ * @return DataResponse
+ */
+ public function sendInvitation($token) {
+ try {
+ return new DataResponse($this->mailService->sendInvitationMail($token), Http::STATUS_OK);
+ } catch (Exception $e) {
+ return new DataResponse(['error' => $e->getMessage()], $e->getStatus());
+ }
+ }
+
+ /**
* delete share
* @NoAdminRequired
* @CORS
diff --git a/lib/Controller/ShareController.php b/lib/Controller/ShareController.php
index aa80cc3d..bd3dd187 100644
--- a/lib/Controller/ShareController.php
+++ b/lib/Controller/ShareController.php
@@ -39,11 +39,13 @@ use OCP\AppFramework\Http\DataResponse;
use OCA\Polls\Model\Acl;
use OCA\Polls\Service\ShareService;
+use OCA\Polls\Service\MailService;
class ShareController extends Controller {
private $logger;
private $shareService;
+ private $mailService;
private $userId;
/**
@@ -52,6 +54,7 @@ class ShareController extends Controller {
* @param string $userId
* @param IRequest $request
* @param ILogger $logger
+ * @param MailService $mailService
* @param ShareService $shareService
*/
public function __construct(
@@ -59,12 +62,14 @@ class ShareController extends Controller {
$userId,
IRequest $request,
ILogger $logger,
+ MailService $mailService,
ShareService $shareService
) {
parent::__construct($appName, $request);
$this->logger = $logger;
$this->userId = $userId;
$this->shareService = $shareService;
+ $this->mailService = $mailService;
}
/**
@@ -75,21 +80,14 @@ class ShareController extends Controller {
* @param Array $share
* @return DataResponse
*/
- public function add($pollId, $share) {
- try {
- $return = $this->shareService->write(
- $pollId,
- $share['type'],
- $share['userId'],
- isset($share['userEmail']) ? $share['userEmail'] : ''
- );
- return new DataResponse($return, Http::STATUS_CREATED);
+ public function add($pollId, $type, $userId = '', $userEmail = '') {
+ try {
+ return new DataResponse(['share' => $this->shareService->add($pollId, $type, $userId, $userEmail)], Http::STATUS_CREATED);
} catch (NotAuthorizedException $e) {
return new DataResponse(['error' => $e->getMessage()], $e->getStatus());
} catch (\Exception $e) {
return new DataResponse($e, Http::STATUS_CONFLICT);
}
-
}
/**
@@ -117,6 +115,25 @@ class ShareController extends Controller {
}
/**
+ * SendInvitation
+ * Sent invitation mails for a share
+ * @NoAdminRequired
+ * @PublicPage
+ * @NoCSRFRequired
+ * @param string $token
+ * @return DataResponse
+ */
+ public function sendInvitation($token) {
+ try {
+ $sentResult = $this->mailService->sendInvitationMail($token);
+ $share = $this->shareService->get($token);
+ return new DataResponse(['share' => $share, 'sentResult' => $sentResult], Http::STATUS_OK);
+ } catch (Exception $e) {
+ return new DataResponse(['error' => $e->getMessage()], $e->getStatus());
+ }
+ }
+
+ /**
* remove
* remove share
* @NoAdminRequired