PageController   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
eloc 11
c 0
b 0
f 0
dl 0
loc 35
rs 10
ccs 7
cts 7
cp 1

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 1
A vote() 0 4 1
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
use OCP\IURLGenerator;
29
30
use OCP\AppFramework\Controller;
31
use OCP\AppFramework\Http\TemplateResponse;
32
use OCA\Polls\Service\NotificationService;
33
34
class PageController extends Controller {
35
36
	/** @var IURLGenerator */
37
	private $urlGenerator;
38
	/** @var NotificationService */
39
	private $notificationService;
40
41
	public function __construct(
42
		string $appName,
43
		IRequest $request,
44
		IURLGenerator $urlGenerator,
45 1
		NotificationService $notificationService
46
	) {
47
		parent::__construct($appName, $request);
48
		$this->urlGenerator = $urlGenerator;
49
		$this->notificationService = $notificationService;
50 1
	}
51 1
52 1
	/**
53
	 * @NoAdminRequired
54
	 * @NoCSRFRequired
55
	 */
56
	public function index(): TemplateResponse {
57
		return new TemplateResponse('polls', 'polls.tmpl',
58 1
		['urlGenerator' => $this->urlGenerator]);
59 1
	}
60 1
61
	/**
62
	 * @NoAdminRequired
63
	 * @NoCSRFRequired
64
	 */
65
	public function vote(int $id): TemplateResponse {
66
		$this->notificationService->removeNotification($id);
67
		return new TemplateResponse('polls', 'polls.tmpl',
68
		['urlGenerator' => $this->urlGenerator]);
69
	}
70
}
71