Passed
Push — master ( a4037f...e3e9e9 )
by Christopher
01:15
created

AbstractElasticsearch   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
eloc 16
dl 0
loc 38
ccs 14
cts 14
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getElasticsearchClient() 0 7 2
A buildElasticsearchClient() 0 16 1
1
<?php
2
namespace Triadev\Es\Business;
3
4
use Elasticsearch\Client;
5
use Elasticsearch\ClientBuilder;
6
use Triadev\Es\Business\Config\ConfigFacade;
7
use Triadev\Es\Business\Helper\Version;
8
9
abstract class AbstractElasticsearch
10
{
11
    use ConfigFacade,
12
        Version;
13
    
14
    /** @var Client */
15
    private $elasticsearchClient;
16
    
17
    /**
18
     * Get elasticsearch client
19
     *
20
     * @return Client
21
     */
22 19
    protected function getElasticsearchClient() : Client
23
    {
24 19
        if (!$this->elasticsearchClient) {
25 19
            $this->elasticsearchClient = $this->buildElasticsearchClient();
26
        }
27
        
28 19
        return $this->elasticsearchClient;
29
    }
30
    
31 19
    private function buildElasticsearchClient() : Client
32
    {
33 19
        $clientBuilder = ClientBuilder::create();
34 19
        $clientBuilder->setHosts([
35
            [
36 19
                'host' => $this->getHost(),
37 19
                'port' => $this->getPort(),
38 19
                'scheme' => $this->getScheme(),
39 19
                'user' => $this->getUser(),
40 19
                'pass' => $this->getPassword()
41
            ]
42
        ]);
43
    
44 19
        $clientBuilder->setRetries($this->getRetries());
45
        
46 19
        return $clientBuilder->build();
47
    }
48
}
49