From d308040803b2b5a4f04c104166d52db486368a3c Mon Sep 17 00:00:00 2001 From: weryques Date: Wed, 21 Feb 2018 15:38:44 -0300 Subject: [PATCH] Changes index of metadata in item do slug --- src/api/class-tainacan-rest-controller.php | 14 +++++++ .../class-tainacan-rest-items-controller.php | 42 +++++++++---------- 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/src/api/class-tainacan-rest-controller.php b/src/api/class-tainacan-rest-controller.php index 50b541892..fe92cfb54 100644 --- a/src/api/class-tainacan-rest-controller.php +++ b/src/api/class-tainacan-rest-controller.php @@ -139,6 +139,15 @@ class TAINACAN_REST_Controller extends WP_REST_Controller { return $args; } + /** + * @param $mapped + * @param $request + * @param $query + * @param $mapped_v + * @param $args + * + * @return mixed + */ private function prepare_meta($mapped, $request, $query, $mapped_v, $args){ $request_meta_query = $request[$mapped]; @@ -162,6 +171,11 @@ class TAINACAN_REST_Controller extends WP_REST_Controller { return $args; } + /** + * @param $array + * + * @return bool + */ protected function contains_array($array){ foreach ($array as $value){ if(is_array($value)){ diff --git a/src/api/endpoints/class-tainacan-rest-items-controller.php b/src/api/endpoints/class-tainacan-rest-items-controller.php index 02304d107..7891a24f5 100644 --- a/src/api/endpoints/class-tainacan-rest-items-controller.php +++ b/src/api/endpoints/class-tainacan-rest-items-controller.php @@ -78,6 +78,21 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_REST_Controller { )); } + private function add_metadata_to_item($item_object, $item_array){ + $item_metadata = $item_object->get_fields(); + + foreach($item_metadata as $index => $me){ + $field = $me->get_field(); + $slug = $field->get_slug(); + + $item_array['metadata'][$slug]['name'] = $field->get_name(); + $item_array['metadata'][$slug]['value'] = $me->get_value(); + $item_array['metadata'][$slug]['multiple'] = $field->get_multiple(); + } + + return $item_array; + } + /** * @param mixed $item * @param WP_REST_Request $request @@ -86,7 +101,9 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_REST_Controller { */ public function prepare_item_for_response( $item, $request ) { if(!empty($item)){ - return $item->__toArray(); + $item_array = $item->__toArray(); + + return $this->add_metadata_to_item($item, $item_array); } return $item; @@ -102,19 +119,8 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_REST_Controller { $item = $this->items_repository->fetch($item_id); - $item_metadata = $item->get_fields(); - $response = $this->prepare_item_for_response($item, $request); - foreach($item_metadata as $index => $me){ - $field = $me->get_field(); - $name = $field->get_name(); - - $response['metadata'][$name]['value'] = $me->get_value(); - $response['metadata'][$name]['status'] = $field->get_status(); - $response['metadata'][$name]['multiple'] = $field->get_multiple(); - } - return new WP_REST_Response($response, 200); } @@ -139,17 +145,7 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_REST_Controller { $item = new Entities\Item($items->post); $limited_item = $this->get_only_needed_attributes($item, $map); - - $item_metadata = $item->get_fields(); - - foreach($item_metadata as $index => $me){ - $field = $me->get_field(); - $name = $field->get_name(); - - $limited_item['metadata'][$name]['value'] = $me->get_value(); - $limited_item['metadata'][$name]['status'] = $field->get_status(); - $limited_item['metadata'][$name]['multiple'] = $field->get_multiple(); - } + $limited_item = $this->add_metadata_to_item($item, $limited_item); array_push($response, $limited_item); }