Code Duplication    Length = 26-26 lines in 2 locations

src/Drivers/Bitly.php 1 location

@@ 9-34 (lines=26) @@
6
use LeadThread\Shortener\Interfaces\UrlShortener;
7
use LeadThread\Shortener\Rotators\Account\Bitly as BitlyRotator;
8
9
class Bitly implements UrlShortener
10
{
11
    protected $config;
12
    protected $rotator;
13
14
    public function __construct(BitlyRotator $rotator = null)
15
    {
16
        $this->config = config('shortener.accounts.bitly');
17
18
        if(!$rotator instanceof BitlyRotator){
19
            $drivers = [];
20
21
            foreach ($this->config as $c) {
22
                $drivers[] = new BitlyDriver($c['token']);
23
            }
24
25
            $rotator = new BitlyRotator($drivers);
26
        }
27
        
28
        $this->rotator = $rotator;
29
    }
30
31
    public function shorten($url, $encode = true){
32
        return $this->rotator->shorten($url, $encode);
33
    }
34
}

src/Drivers/Google.php 1 location

@@ 9-34 (lines=26) @@
6
use LeadThread\Shortener\Interfaces\UrlShortener;
7
use LeadThread\Shortener\Rotators\Account\Google as GoogleRotator;
8
9
class Google implements UrlShortener
10
{
11
    protected $config;
12
    protected $rotator;
13
14
    public function __construct(GoogleRotator $rotator = null)
15
    {
16
        $this->config = config('shortener.accounts.google');
17
18
        if(!$rotator instanceof GoogleRotator){
19
            $drivers = [];
20
21
            foreach ($this->config as $c) {
22
                $drivers[] = new GoogleDriver($c['token']);
23
            }
24
25
            $rotator = new GoogleRotator($drivers);
26
        }
27
        
28
        $this->rotator = $rotator;
29
    }
30
31
    public function shorten($url, $encode = true){
32
        return $this->rotator->shorten($url, $encode);
33
    }
34
}