Passed
Pull Request — master (#1234)
by René
07:41 queued 03:42
created

PageController::vote()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 4
ccs 0
cts 3
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php
2
/**
3
 * @copyright Copyright (c) 2017 Vinzenz Rosenkranz <[email protected]>
4
 *
5
 * @author Vinzenz Rosenkranz <[email protected]>
6
 * @author René Gieling <[email protected]>
7
 *
8
 * @license GNU AGPL version 3 or any later version
9
 *
10
 *  This program is free software: you can redistribute it and/or modify
11
 *  it under the terms of the GNU Affero General Public License as
12
 *  published by the Free Software Foundation, either version 3 of the
13
 *  License, or (at your option) any later version.
14
 *
15
 *  This program is distributed in the hope that it will be useful,
16
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 *  GNU Affero General Public License for more details.
19
 *
20
 *  You should have received a copy of the GNU Affero General Public License
21
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
 *
23
 */
24
25
namespace OCA\Polls\Controller;
26
27
use OCP\IRequest;
28
29
use OCP\AppFramework\Controller;
30
use OCP\AppFramework\Http\TemplateResponse;
31
use OCP\AppFramework\Http\Template\PublicTemplateResponse;
32
use OCP\IURLGenerator;
33
use OCA\Polls\Service\NotificationService;
34
35
class PageController extends Controller {
36
37
	/** @var IURLGenerator */
38
	private $urlGenerator;
39
	/** @var NotificationService */
40
	private $notificationService;
41
42
	/**
43
	 * PageController constructor.
44
	 * @param string $appName
45 1
	 * @param IRequest $request
46
	 * @param IURLGenerator $urlGenerator
47
	 */
48
	public function __construct(
49
		$appName,
50 1
		IRequest $request,
51 1
		IURLGenerator $urlGenerator,
52 1
		NotificationService $notificationService
53
	) {
54
		parent::__construct($appName, $request);
55
		$this->urlGenerator = $urlGenerator;
56
		$this->notificationService = $notificationService;
57
	}
58 1
59 1
	/**
60 1
	 * @NoAdminRequired
61
	 * @NoCSRFRequired
62
	 */
63
	public function index() {
64
		return new TemplateResponse('polls', 'polls.tmpl',
65
		['urlGenerator' => $this->urlGenerator]);
66
	}
67
68
	/**
69
	 * @NoAdminRequired
70
	 * @NoCSRFRequired
71
	 */
72
	public function vote($id) {
73
		$this->notificationService->removeNotification($id);
74
		return new TemplateResponse('polls', 'polls.tmpl',
75
		['urlGenerator' => $this->urlGenerator]);
76
	}
77
78
	/**
79
	 * @PublicPage
80
	 * @NoAdminRequired
81
	 * @NoCSRFRequired
82
	 * @param string $token
83
	 * @return PublicTemplateResponse
84
	 */
85
	public function votePublic() {
86
		if (\OC::$server->getUserSession()->isLoggedIn()) {
87
			return new TemplateResponse('polls', 'polls.tmpl', [
88
				'urlGenerator' => $this->urlGenerator]);
89
		} else {
90
			return new PublicTemplateResponse('polls', 'polls.tmpl', [
91
				'urlGenerator' => $this->urlGenerator]);
92
		}
93
	}
94
}
95