Failed Conditions
Push — master ( 1d9c07...86291e )
by Atanas
02:02
created

Route::getMethods()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 2
ccs 0
cts 0
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * @package   WPEmerge
4
 * @author    Atanas Angelov <[email protected]>
5
 * @copyright 2017-2019 Atanas Angelov
6
 * @license   https://www.gnu.org/licenses/gpl-2.0.html GPL-2.0
7
 * @link      https://wpemerge.com/
8
 */
9
10
namespace WPEmerge\Routing;
11
12
use WPEmerge\Exceptions\ConfigurationException;
13
use WPEmerge\Helpers\HasAttributesTrait;
14
use WPEmerge\Requests\RequestInterface;
15
use WPEmerge\Routing\Conditions\ConditionInterface;
16
17
/**
18
 * Represent a route
19
 */
20
class Route implements RouteInterface, HasQueryFilterInterface {
21
	use HasAttributesTrait;
22
	use HasQueryFilterTrait;
23
24
	/**
25
	 * {@inheritDoc}
26
	 */
27 3
	public function isSatisfied( RequestInterface $request ) {
28 3
		$methods = $this->getAttribute( 'methods', [] );
29 3
		$condition = $this->getAttribute( 'condition' );
30
31 3
		if ( ! in_array( $request->getMethod(), $methods ) ) {
32 1
			return false;
33
		}
34
35 3
		if ( ! $condition instanceof ConditionInterface ) {
36 1
			throw new ConfigurationException( 'Route does not have a condition.' );
37
		}
38
39 2
		return $condition->isSatisfied( $request );
40
	}
41
42
	/**
43
	 * {@inheritDoc}
44
	 */
45 2
	public function getArguments( RequestInterface $request ) {
46 2
		$condition = $this->getAttribute( 'condition' );
47
48 2
		if ( ! $condition instanceof ConditionInterface ) {
49 1
			throw new ConfigurationException( 'Route does not have a condition.' );
50
		}
51
52 1
		return $condition->getArguments( $request );
53
	}
54
}
55