Passed
Push — master ( e59495...facc33 )
by Isaac
02:07
created

StatisticsRequest   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 69
Duplicated Lines 0 %

Test Coverage

Coverage 88.24%

Importance

Changes 0
Metric Value
dl 0
loc 69
ccs 15
cts 17
cp 0.8824
rs 10
c 0
b 0
f 0
wmc 7

4 Methods

Rating   Name   Duplication   Size   Complexity  
A method() 0 3 1
A __construct() 0 4 1
A uri() 0 7 2
A queryFilters() 0 13 3
1
<?php
2
3
namespace Mediumart\Orange\SMS\Http\Requests;
4
5
use Mediumart\Orange\SMS\Http\SMSClientRequest;
6
7
class StatisticsRequest extends SMSClientRequest
8
{
9
    /**
10
     * International country code.
11
     *
12
     * @see http://fr.wikipedia.org/wiki/ISO_3166-1#Table_de_codage
13
     * @var string
14
     */
15
    protected $countryCode;
16
17
    /**
18
     * Api app ID.
19
     *
20
     * @var string
21
     */
22
    protected $appID;
23
24
    /**
25
     * SMSAdminStatsRequest constructor.
26
     *
27
     * @param $countryCode
28
     * @param $appID
29
     */
30 1
    public function __construct($countryCode = null, $appID = null)
31
    {
32 1
        $this->countryCode = $countryCode;
33 1
        $this->appID = $appID;
34 1
    }
35
36
    /**
37
     * @inherit
38
     *
39
     * @return string
40
     */
41 1
    public function method()
42
    {
43 1
        return 'GET';
44
    }
45
46
    /**
47
     * @inherit
48
     *
49
     * @return string
50
     */
51 1
    public function uri()
52
    {
53 1
        $filters = $this->queryFilters();
54
55 1
        $uri = static::BASE_URI . '/sms/admin/v1/statistics';
56
57 1
        return count($filters) ? $uri.'?'.http_build_query($filters) : $uri;
58
    }
59
60
    /**
61
     * @return array
62
     */
63 1
    private function queryFilters()
64
    {
65 1
        $filters = [];
66
67 1
        if ($this->countryCode) {
68
            $filters['country'] = $this->countryCode;
69
        }
70
71 1
        if ($this->appID) {
72
            $filters['appid'] = $this->appID;
73
        }
74
75 1
        return $filters;
76
    }
77
}
78