/** * Parse a result into an array. Also requires * the request so we can work out which columns * we expected the API to return. * * @param Request $request * @param string $data * @throws ErroneousResponseException * @return string[] */ public function parseResult(Request $request, $data) { try { $this->handleErrors($data); } catch (EmptyResponseException $e) { return []; } $rows = $this->splitStringIntoArray($data); $columns = $request->getExpectedResultColumns(); $rows = $this->hackToFixNewlineInCell($rows); foreach ($rows as &$row) { $row = $this->parseRow($columns, $row); } return $rows; }
public function testGetExpectedResultColumns() { $columns = [Column::COLUMN_OVERVIEW_ADWORDS_BUDGET, Column::COLUMN_OVERVIEW_ADWORDS_KEYWORDS]; $request = new Request(Type::TYPE_DOMAIN_RANKS, ['key' => $this->key, 'domain' => $this->domain, 'export_columns' => $columns]); $this->assertEquals($columns, $request->getExpectedResultColumns()); }