Completed
Pull Request — master (#6)
by Christopher
04:43
created

Elasticsearch::buildElasticsearchClient()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 0
dl 0
loc 16
ccs 10
cts 10
cp 1
crap 1
rs 9.9666
c 0
b 0
f 0
1
<?php
2
namespace Triadev\Es;
3
4
use Elasticsearch\Client;
5
use Elasticsearch\ClientBuilder;
6
use Triadev\Es\Contract\ElasticsearchContract;
7
8
class Elasticsearch implements ElasticsearchContract
9
{
10
    /** @var Client */
11
    private $client;
12
    
13
    /**
14
     * Get client
15
     *
16
     * @return Client
17
     */
18 1
    public function getClient(): Client
19
    {
20 1
        if (!$this->client) {
21 1
            $this->client = $this->buildElasticsearchClient();
22
        }
23
    
24 1
        return $this->client;
25
    }
26
    
27 1
    private function buildElasticsearchClient() : Client
28
    {
29 1
        $config = config('triadev-elasticsearch');
30
        
31 1
        $clientBuilder = ClientBuilder::create();
32 1
        $clientBuilder->setHosts([
33
            [
34 1
                'host' => array_get($config, 'host'),
35 1
                'port' => array_get($config, 'port'),
36 1
                'scheme' => array_get($config, 'scheme'),
37 1
                'user' => array_get($config, 'user'),
38 1
                'pass' => array_get($config, 'password')
39
            ]
40
        ]);
41
        
42 1
        return $clientBuilder->build();
43
    }
44
}
45