CloudinaryAdapter::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php namespace Nord\Lumen\ImageManager\Adapters\Cloudinary;
2
3
use Cloudinary;
4
use Nord\Lumen\FileManager\Contracts\File;
5
use Nord\Lumen\ImageManager\Contracts\Image;
6
use Nord\Lumen\ImageManager\Contracts\ManipulatorAdapter;
7
8
class CloudinaryAdapter implements ManipulatorAdapter
9
{
10
11
    /**
12
     * CloudinaryAdapter constructor.
13
     *
14
     * @param array $config
15
     */
16
    public function __construct(array $config)
17
    {
18
        $this->configureClient($config);
19
    }
20
21
22
    /**
23
     * @return string
24
     */
25
    public function getName()
26
    {
27
        return 'cloudinary';
28
    }
29
30
31
    /**
32
     * @inheritdoc
33
     */
34
    public function getImageUrl($path, array $options)
35
    {
36
        return cloudinary_url($path, $options);
37
    }
38
39
40
    /**
41
     * @param array $config
42
     */
43
    private function configureClient(array $config)
44
    {
45
        $cloudName = array_get($config, 'cloudName', env('CLOUDINARY_NAME'));
46
        $apiKey    = array_get($config, 'apiKey', env('CLOUDINARY_KEY'));
47
        $apiSecret = array_get($config, 'apiSecret', env('CLOUDINARY_SECRET'));
48
49
        Cloudinary::config([
50
            'cloud_name' => $cloudName,
51
            'api_key'    => $apiKey,
52
            'api_secret' => $apiSecret,
53
        ]);
54
    }
55
}
56