| @@ 656-669 (lines=14) @@ | ||
| 653 | * @param array $params |
|
| 654 | * @return self |
|
| 655 | */ |
|
| 656 | private function extractFields(array $params) |
|
| 657 | { |
|
| 658 | if (false === $this->issetNotEmpty(self::PARAM_FIELDSETS, $params)) { |
|
| 659 | return $this; |
|
| 660 | } |
|
| 661 | $fields = $params[self::PARAM_FIELDSETS]; |
|
| 662 | if (!is_array($fields)) { |
|
| 663 | throw RestException::invalidQueryParam(self::PARAM_FIELDSETS, 'The field parameter must be an array of entity type keys to fields.'); |
|
| 664 | } |
|
| 665 | foreach ($fields as $entityType => $string) { |
|
| 666 | $this->fields[$entityType] = explode(',', $string); |
|
| 667 | } |
|
| 668 | return $this; |
|
| 669 | } |
|
| 670 | ||
| 671 | /** |
|
| 672 | * Extracts pagination criteria from an array of query params. |
|
| @@ 699-712 (lines=14) @@ | ||
| 696 | * @param array $params |
|
| 697 | * @return self |
|
| 698 | */ |
|
| 699 | private function extractFilters(array $params) |
|
| 700 | { |
|
| 701 | if (false === $this->issetNotEmpty(self::PARAM_FILTERING, $params)) { |
|
| 702 | return $this; |
|
| 703 | } |
|
| 704 | $filters = $params[self::PARAM_FILTERING]; |
|
| 705 | if (!is_array($filters)) { |
|
| 706 | throw RestException::invalidQueryParam(self::PARAM_FILTERING, 'The filter parameter must be an array keyed by filter name and value.'); |
|
| 707 | } |
|
| 708 | foreach ($filters as $key => $value) { |
|
| 709 | $this->filters[$key] = $value; |
|
| 710 | } |
|
| 711 | return $this; |
|
| 712 | } |
|
| 713 | ||
| 714 | /** |
|
| 715 | * Gets query string parameters that this request supports. |
|