Completed
Push — master ( 424d62...2a7733 )
by Morris
11:53
created

ParamFilter::xmlDeserialize()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 20
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 12
nc 3
nop 1
dl 0
loc 20
rs 9.4285
c 0
b 0
f 0
1
<?php
2
/**
3
 * @author Georg Ehrke <[email protected]>
4
 *
5
 * @copyright Copyright (c) 2017 Georg Ehrke <[email protected]>
6
 * @license GNU AGPL version 3 or any later version
7
 *
8
 * This code is free software: you can redistribute it and/or modify
9
 * it under the terms of the GNU Affero General Public License, version 3,
10
 * as published by the Free Software Foundation.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
 * GNU Affero General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Affero General Public License, version 3,
18
 * along with this program.  If not, see <http://www.gnu.org/licenses/>
19
 *
20
 */
21
namespace OCA\DAV\CalDAV\Search\Xml\Filter;
22
23
use Sabre\DAV\Exception\BadRequest;
24
use Sabre\Xml\Reader;
25
use Sabre\Xml\XmlDeserializable;
26
use OCA\DAV\CalDAV\Search\SearchPlugin;
27
28
class ParamFilter implements XmlDeserializable {
29
30
	/**
31
	 * @param Reader $reader
32
	 * @throws BadRequest
33
	 * @return string
34
	 */
35
	static function xmlDeserialize(Reader $reader) {
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
36
		$att = $reader->parseAttributes();
37
		$property = $att['property'];
38
		$parameter = $att['name'];
39
40
		$reader->parseInnerTree();
41
42
		if (!is_string($property)) {
43
			throw new BadRequest('The {' . SearchPlugin::NS_Nextcloud . '}param-filter requires a valid property attribute');
44
45
		}
46
		if (!is_string($parameter)) {
47
			throw new BadRequest('The {' . SearchPlugin::NS_Nextcloud . '}param-filter requires a valid parameter attribute');
48
		}
49
50
		return [
51
			'property' => $property,
52
			'parameter' => $parameter,
53
		];
54
	}
55
}
56