1 | <?php |
||
7 | class NpmStats |
||
8 | { |
||
9 | /** @var \GuzzleHttp\Client */ |
||
10 | protected $client; |
||
11 | /** @var string */ |
||
12 | protected $baseUrl; |
||
13 | |||
14 | const LAST_DAY = 'last-day'; |
||
15 | const LAST_WEEK = 'last-week'; |
||
16 | const LAST_MONTH = 'last-month'; |
||
17 | const LAST_YEAR = 'last-year'; |
||
18 | const TOTAL = 'total'; |
||
19 | |||
20 | /** |
||
21 | * @param \GuzzleHttp\Client $client |
||
22 | * @param string $baseUrl |
||
23 | */ |
||
24 | public function __construct(Client $client, $baseUrl = 'https://api.npmjs.org/downloads') |
||
29 | |||
30 | /** |
||
31 | * @param $packageName |
||
32 | * @param string $pointValue |
||
33 | * @return array |
||
34 | */ |
||
35 | private function getStatsByPoint($packageName, $pointValue = 'last-day') |
||
39 | |||
40 | /** |
||
41 | * @param $packageName |
||
42 | * @param string $rangeValue |
||
43 | * @return array |
||
44 | */ |
||
45 | private function getStatsByRange($packageName, $rangeValue = 'last-day') |
||
49 | |||
50 | /** |
||
51 | * @param $packageName |
||
52 | * @param string $period |
||
53 | * @param bool $asRange |
||
54 | * @return array |
||
55 | * @throws \Exception |
||
56 | */ |
||
57 | public function getStats($packageName, $period = 'last-day', $asRange = false) |
||
71 | |||
72 | /** |
||
73 | * @param string $resource |
||
74 | * @param array $query |
||
75 | * |
||
76 | * @return array |
||
77 | */ |
||
78 | private function makeRequest($resource, array $query = []) |
||
87 | |||
88 | private function replaceSpecialPeriodsIfApplicable(&$period) |
||
99 | } |
||
100 |