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

Route::getArguments()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 8
ccs 5
cts 5
cp 1
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
crap 2
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