Passed
Pull Request — master (#1187)
by René
04:10
created

PreferencesController::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

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