Passed
Pull Request — master (#1234)
by René
04:40
created

PageController   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Test Coverage

Coverage 53.85%

Importance

Changes 0
Metric Value
wmc 5
eloc 17
dl 0
loc 57
ccs 7
cts 13
cp 0.5385
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 1
A vote() 0 4 1
A votePublic() 0 7 2
A index() 0 3 1
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