Completed
Push — master ( 6a8f4b...4a9289 )
by Peter
09:25
created

SearchDecorator   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 1
dl 0
loc 28
ccs 8
cts 8
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A decorate() 0 21 2
1
<?php
2
3
/*
4
 * To change this license header, choose License Headers in Project Properties.
5
 * To change this template file, choose Tools | Templates
6
 * and open the template in the editor.
7
 */
8
9
namespace Maslosoft\Manganel\Decorators\QueryBuilder;
10
11
use Maslosoft\Manganel\Interfaces\QueryBuilder\DecoratorInterface;
12
use Maslosoft\Manganel\SearchCriteria;
13
14
/**
15
 * SearchDecorator
16
 *
17
 * @author Piotr Maselkowski <pmaselkowski at gmail.com>
18
 */
19
class SearchDecorator implements DecoratorInterface
20
{
21
22
	const Ns = __NAMESPACE__;
23
24 7
	public function decorate(&$conditions, SearchCriteria $criteria)
25
	{
26 7
		$q = $criteria->getSearch();
27
28 7
		if (empty($q))
29
		{
30
			// Match all documents if query is null
31 1
			$conditions[] = [
32
				'match_all' => []
33 1
			];
34
		}
35
		else
36
		{
37
			// Use query string matching
38 6
			$conditions[] = [
39
				'simple_query_string' => [
40 6
					'query' => $q
41
				]
42
			];
43
		}
44 7
	}
45
46
}
47