Completed
Push — master ( 7db90d...b62044 )
by
unknown
05:58
created

VimeoProvider::getIcon()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace MediaMonks\SonataMediaBundle\Provider;
4
5
use MediaMonks\SonataMediaBundle\Exception\InvalidProviderUrlException;
6
7
class VimeoProvider extends AbstractOembedProvider implements ProviderInterface, EmbeddableProviderInterface
8
{
9
    const URL_OEMBED = 'https://vimeo.com/api/oembed.json?url=http://vimeo.com/%s';
10
11
    /**
12
     * @param $value
13
     * @return string
14
     * @throws \Exception
15
     */
16 3
    public function parseProviderReference($value)
17
    {
18 3
        if (strpos($value, 'vimeo.com')) {
19 3
            $urlParts = explode('/', parse_url($value, PHP_URL_PATH));
20 3
            foreach ($urlParts as $urlPart) {
21 3
                if (ctype_digit($urlPart)) {
22 1
                    return $urlPart;
23
                }
24 3
            }
25
26 2
            throw new InvalidProviderUrlException('Vimeo');
27
        }
28
29 1
        return $value;
30
    }
31
32
    /**
33
     * @param string $id
34
     * @return string
35
     */
36
    public function getOembedUrl($id)
37
    {
38
        return sprintf(self::URL_OEMBED, $id);
39
    }
40
41
    /**
42
     * @return string
43
     */
44 1
    public function getIcon()
45
    {
46 1
        return 'fa fa-vimeo';
47
    }
48
49
    /**
50
     * @return string
51
     */
52 3
    public function getName()
53
    {
54 3
        return 'vimeo';
55
    }
56
57
    /**
58
     * @return string
59
     */
60
    public function getType()
61
    {
62
        return AbstractProvider::TYPE_VIDEO;
63
    }
64
}
65