Completed
Push — master ( 8bbda0...ede634 )
by ARCANEDEV
8s
created

SingletonResource   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 90.91%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 3
c 2
b 0
f 0
lcom 0
cbo 1
dl 0
loc 52
ccs 10
cts 11
cp 0.9091
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A classUrl() 0 6 1
A instanceUrl() 0 7 1
A scopedSingletonRetrieve() 0 8 1
1
<?php namespace Arcanedev\Stripe;
2
3
/**
4
 * Class     SingletonResource
5
 *
6
 * @package  Arcanedev\Stripe
7
 * @author   ARCANEDEV <[email protected]>
8
 */
9
class SingletonResource extends StripeResource
10
{
11
    /* ------------------------------------------------------------------------------------------------
12
     |  Main Functions
13
     | ------------------------------------------------------------------------------------------------
14
     */
15
    /**
16
     * Retrieve a singleton resource
17
     *
18
     * @param  string             $class
19
     * @param  array|string|null  $apiKey
20
     *
21
     * @return SingletonResource
22
     */
23 10
    protected static function scopedSingletonRetrieve($class, $apiKey = null)
24
    {
25
        /** @var self $instance */
26 10
        $instance = new $class(null, $apiKey);
27 10
        $instance->refresh();
28
29
        return $instance;
30
    }
31
32
    /**
33
     * Get resource URL.
34
     *
35
     * @param  string  $class
36
     *
37
     * @return string - The endpoint associated with this singleton class.
38
     */
39 10
    public static function classUrl($class = '')
40
    {
41 10
        $base = self::className($class);
42
43 10
        return "/v1/${base}";
44
    }
45
46
    /**
47
     * The endpoint associated with this singleton API resource.
48
     *
49
     * @param  string  $class
50
     *
51
     * @return string
52
     */
53
    public function instanceUrl($class = '')
54
    {
55 10
        $class  = get_class($this);
56 10
        $base   = self::classUrl($class);
57
58 10
        return (string) $base;
59
    }
60
}
61