Completed
Push — master ( 2ee75a...9c0444 )
by Miguel
09:44
created

Config   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 2
dl 0
loc 45
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 8 1
A formatRedirectUri() 0 6 2
A get() 0 4 1
1
<?php
2
3
namespace SocialiteProviders\Manager;
4
5
use Illuminate\Support\Str;
6
use Illuminate\Support\Facades\URL;
7
8
class Config implements Contracts\ConfigInterface
9
{
10
    /**
11
     * @var array
12
     */
13
    protected $config;
14
15
    /**
16
     * Config constructor.
17 13
     *
18
     * @param string $key
19 13
     * @param string $secret
20 13
     * @param string $callbackUri
21 13
     * @param array  $additionalProviderConfig
22 13
     */
23 13
    public function __construct($key, $secret, $callbackUri, array $additionalProviderConfig = [])
24 13
    {
25
        $this->config = array_merge([
26
            'client_id'     => $key,
27
            'client_secret' => $secret,
28
            'redirect'      => $this->formatRedirectUri($callbackUri),
29 9
        ], $additionalProviderConfig);
30
    }
31 9
32
    /**
33
     * Format the callback URI, resolving a relative URI if needed.
34
     *
35
     * @param  string  $callbackUri
36
     * @return string
37
     */
38
    protected function formatRedirectUri($callbackUri)
39
    {
40
        return Str::startsWith($callbackUri, '/')
41
                    ? URL::to($callbackUri)
42
                    : $callbackUri;
43
    }
44
45
    /**
46
     * @return array
47
     */
48
    public function get()
49
    {
50
        return $this->config;
51
    }
52
}
53