Completed
Pull Request — master (#5)
by Alessandro
09:25
created

ClientUriBuilder   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 4
c 0
b 0
f 0
lcom 0
cbo 1
dl 0
loc 47
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A buildUriForConfiguration() 0 8 2
A generateUriWithDatabase() 0 9 1
A generateSimpleUri() 0 8 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Facile\MongoDbBundle\Services;
6
7
use Facile\MongoDbBundle\Models\ClientConfiguration;
8
9
/**
10
 * Class ClientUriBuilder.
11
 */
12
class ClientUriBuilder
13
{
14
    /**
15
     * @param ClientConfiguration $configuration
16
     * @param string              $databaseName
17
     *
18
     * @return string
19
     */
20
    public function buildUriForConfiguration(ClientConfiguration $configuration, string $databaseName = null): string
21
    {
22
        if (!is_null($databaseName)) {
23
            return $this->generateUriWithDatabase($configuration, $databaseName);
24
        }
25
26
        return $this->generateSimpleUri($configuration);
27
    }
28
29
    /**
30
     * @param ClientConfiguration $configuration
31
     * @param string              $databaseName
32
     *
33
     * @return string
34
     */
35
    private function generateUriWithDatabase(ClientConfiguration $configuration, string $databaseName): string
36
    {
37
        return sprintf(
38
            'mongodb://%s:%d/%s',
39
            $configuration->getHost(),
40
            $configuration->getPort(),
41
            $databaseName
42
        );
43
    }
44
45
    /**
46
     * @param ClientConfiguration $configuration
47
     *
48
     * @return string
49
     */
50
    private function generateSimpleUri(ClientConfiguration $configuration): string
51
    {
52
        return sprintf(
53
            'mongodb://%s:%d',
54
            $configuration->getHost(),
55
            $configuration->getPort()
56
        );
57
    }
58
}
59