Completed
Push — siteaccessaware-layer-only ( 14ffb6 )
by André
15:43
created

SearchService::findContentInfo()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 8
Ratio 100 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 1
nop 3
dl 8
loc 8
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * SearchService class.
5
 *
6
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
7
 * @license For full copyright and license information view LICENSE file distributed with this source code.
8
 */
9
namespace eZ\Publish\Core\Repository\SiteAccessAware;
10
11
use eZ\Publish\API\Repository\SearchService as SearchServiceInterface;
12
use eZ\Publish\API\Repository\Values\Content\Query;
13
use eZ\Publish\API\Repository\Values\Content\LocationQuery;
14
use eZ\Publish\API\Repository\Values\Content\Query\Criterion;
15
use eZ\Publish\Core\Repository\Helper\LanguageResolver;
16
17
/**
18
 * SiteAccess aware implementation of SearchService injecting languages where needed.
19
 */
20
class SearchService implements SearchServiceInterface
21
{
22
    /**
23
     * Aggregated service.
24
     *
25
     * @var \eZ\Publish\API\Repository\SearchService
26
     */
27
    protected $service;
28
29
    /**
30
     * Language resolver
31
     *
32
     * @var LanguageResolver
33
     */
34
    protected $languageResolver;
35
36
    /**
37
     * Construct service object from aggregated service and LanguageResolver.
38
     *
39
     * @param \eZ\Publish\API\Repository\SearchService $service
40
     * @param LanguageResolver $languageResolver
41
     */
42
    public function __construct(
43
        SearchServiceInterface $service,
44
        LanguageResolver $languageResolver
45
    ) {
46
        $this->service = $service;
47
        $this->languageResolver = $languageResolver;
48
    }
49
50 View Code Duplication
    public function findContent(Query $query, array $languageFilter = array(), $filterOnUserPermissions = true)
51
    {
52
        $languageFilter['languages'] = $this->languageResolver->getLanguages(
53
            empty($languageFilter['languages']) ? []: $languageFilter['languages']
54
        );
55
56
        return $this->service->findContent($query, $languageFilter, $filterOnUserPermissions);
57
    }
58
59 View Code Duplication
    public function findContentInfo(Query $query, array $languageFilter = array(), $filterOnUserPermissions = true)
60
    {
61
        $languageFilter['languages'] = $this->languageResolver->getLanguages(
62
            empty($languageFilter['languages']) ? []: $languageFilter['languages']
63
        );
64
65
        return $this->service->findContentInfo($query, $languageFilter, $filterOnUserPermissions);
66
    }
67
68 View Code Duplication
    public function findSingle(Criterion $filter, array $languageFilter = array(), $filterOnUserPermissions = true)
69
    {
70
        $languageFilter['languages'] = $this->languageResolver->getLanguages(
71
            empty($languageFilter['languages']) ? []: $languageFilter['languages']
72
        );
73
74
        return $this->service->findSingle($filter, $languageFilter, $filterOnUserPermissions);
75
    }
76
77
    public function suggest($prefix, $fieldPaths = array(), $limit = 10, Criterion $filter = null)
78
    {
79
        return $this->service->suggest($prefix, $fieldPaths, $limit, $filter);
80
    }
81
82 View Code Duplication
    public function findLocations(LocationQuery $query, array $languageFilter = array(), $filterOnUserPermissions = true)
83
    {
84
        $languageFilter['languages'] = $this->languageResolver->getLanguages(
85
            empty($languageFilter['languages']) ? []: $languageFilter['languages']
86
        );
87
88
        return $this->service->findLocations($query, $languageFilter, $filterOnUserPermissions);
89
    }
90
}
91