* apply the fiven filters to the hole result set * * @param $data * @param $filter * @return array */
($data, $filter)
| 377 | * @return array |
| 378 | */ |
| 379 | private function filterData($data, $filter) { |
| 380 | $options = json_decode($filter, true); |
| 381 | if (isset($options['filter'])) { |
| 382 | foreach ($this->groupFiltersByDimension($options['filter']) as $key => $filters) { |
| 383 | $filtered = array(); |
| 384 | |
| 385 | foreach ($data['data'] as $record) { |
| 386 | if ($this->recordMatchesAnyFilter($record, $key, $filters)) { |
| 387 | $filtered[] = $record; |
| 388 | } |
| 389 | } |
| 390 | $data['data'] = $filtered; |
| 391 | } |
| 392 | } |
| 393 | return $data; |
| 394 | } |
| 395 | |
| 396 | private function groupFiltersByDimension(array $filters): array { |
| 397 | $groups = []; |
no test coverage detected