diff --git a/src/classes/entities/class-tainacan-filter.php b/src/classes/entities/class-tainacan-filter.php index 3686e86af..f34a4bdc2 100644 --- a/src/classes/entities/class-tainacan-filter.php +++ b/src/classes/entities/class-tainacan-filter.php @@ -46,12 +46,16 @@ class Filter extends Entity { $filter_array['metadatum'] = []; $filter_array['metadatum']['metadatum_id'] = $metadatum_id; - $filter_array['metadatum']['metadatum_name'] = $metadatum->get_name(); - $meta_object = $metadatum->get_metadata_type_object(); - if (is_object($meta_object)) { - $filter_array['metadatum']['metadata_type_object'] = $meta_object->_toArray(); + + if ($metadatum instanceof Metadatum) { + $filter_array['metadatum']['metadatum_name'] = $metadatum->get_name(); + $meta_object = $metadatum->get_metadata_type_object(); + if (is_object($meta_object)) { + $filter_array['metadatum']['metadata_type_object'] = $meta_object->_toArray(); + } } + return apply_filters('tainacan-filter-to-array', $filter_array, $this); } diff --git a/tests/test-api-filters.php b/tests/test-api-filters.php index 4d494dc18..8e4258761 100644 --- a/tests/test-api-filters.php +++ b/tests/test-api-filters.php @@ -67,7 +67,10 @@ class TAINACAN_REST_Terms_Controller extends TAINACAN_UnitApiTestCase { array( 'name' => 'Metadatum filtered', 'description' => 'Is filtered', - ) + 'collection_id' => $collection->get_id(), + 'metadata_type' => 'Tainacan\Metadata_Types\Numeric', + ), + true ); $filter = $this->tainacan_entity_factory->create_entity( @@ -76,7 +79,7 @@ class TAINACAN_REST_Terms_Controller extends TAINACAN_UnitApiTestCase { 'name' => 'filtro', 'collection' => $collection, 'description' => 'descricao', - 'metadatum' => $metadatum, + 'metadatum_id' => $metadatum->get_id(), 'filter_type' => 'Tainacan\Filter_Types\Custom_Interval', ), true @@ -131,8 +134,10 @@ class TAINACAN_REST_Terms_Controller extends TAINACAN_UnitApiTestCase { array( 'name' => 'Metadatum filtered', 'description' => 'Is filtered', - 'collection_id' => $collection->get_id() - ) + 'collection_id' => $collection->get_id(), + 'metadata_type' => 'Tainacan\Metadata_Types\Numeric', + ), + true ); $filter_type = $this->tainacan_filter_factory->create_filter('custom_interval'); @@ -143,7 +148,7 @@ class TAINACAN_REST_Terms_Controller extends TAINACAN_UnitApiTestCase { 'name' => 'filtro', 'collection' => $collection, 'description' => 'descricao', - 'metadatum' => $metadatum, + 'metadatum_id' => $metadatum->get_id(), 'filter_type' => $filter_type, ), true