/** * Get data by time * * @see http://api.yandex.ru/metrika/doc/beta/api_v1/bytime.xml * * @param Models\ByTimeParams $params * @return Models\ByTimeData */ public function getByTime(Models\ByTimeParams $params) { $resource = 'bytime'; $response = $this->sendGetRequest($resource, $params->toArray()); $dataResponse = new Models\ByTimeData($response); return $dataResponse; }
public function test1() { $param = new ByTimeParams(); $param->setDimensions(['12', '13'])->setLimit(10); $expected = ['dimensions' => '12,13', 'limit' => 10]; $this->assertEquals($expected, $param->toArray()); }
public function testGenerateRequest() { $id = 123; $limit = 100; $dimensions = ['dimension1', 'deimension2']; $sort = 'sort'; $filter = 'a<b'; $byTimeParams = new Models\ByTimeParams(); $byTimeParams->setId($id)->setLimit($limit)->setDimensions($dimensions)->setSort($sort)->setFilters($filter)->setMetrics(null); $client = new DataClient(); $url = $client->getServiceUrl('bytime', $byTimeParams->toArray()); $expectedUrl = 'https://api-metrika.yandex.ru/stat/v1/data/bytime.json?oauth_token=&id=' . $id . '&dimensions=' . urlencode(implode(',', $dimensions)) . '&sort=' . $sort . '&limit=' . $limit . '&filters=' . urlencode($filter); $this->assertEquals($expectedUrl, $url); }