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

SingletonResource::scopedSingletonRetrieve()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1.0156
Metric Value
dl 0
loc 8
ccs 3
cts 4
cp 0.75
rs 9.4285
cc 1
eloc 4
nc 1
nop 2
crap 1.0156
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