Refactoring some code in rest facets and metatada repository
This commit is contained in:
parent
4e67979f4f
commit
75e2411265
|
@ -50,7 +50,7 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
register_rest_route($this->namespace, '/collection/(?P<collection_id>[\d]+)/' . $this->rest_base . '/(?P<metadatum_id>[\d]+)', array(
|
register_rest_route($this->namespace, '/collection/(?P<collection_id>[\d]+)/' . $this->rest_base . '/(?P<metadatum_id>[\d]+)', array(
|
||||||
array(
|
array(
|
||||||
'methods' => \WP_REST_Server::READABLE,
|
'methods' => \WP_REST_Server::READABLE,
|
||||||
'callback' => array($this, 'get_item'),
|
'callback' => array($this, 'get_items'),
|
||||||
'permission_callback' => array($this, 'get_items_permissions_check')
|
'permission_callback' => array($this, 'get_items_permissions_check')
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
@ -58,7 +58,7 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
register_rest_route($this->namespace, '/' . $this->rest_base . '/(?P<metadatum_id>[\d]+)', array(
|
register_rest_route($this->namespace, '/' . $this->rest_base . '/(?P<metadatum_id>[\d]+)', array(
|
||||||
array(
|
array(
|
||||||
'methods' => \WP_REST_Server::READABLE,
|
'methods' => \WP_REST_Server::READABLE,
|
||||||
'callback' => array($this, 'get_item'),
|
'callback' => array($this, 'get_items'),
|
||||||
'permission_callback' => array($this, 'get_items_permissions_check')
|
'permission_callback' => array($this, 'get_items_permissions_check')
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
|
@ -69,7 +69,7 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
*
|
*
|
||||||
* @return \WP_Error|\WP_REST_Response
|
* @return \WP_Error|\WP_REST_Response
|
||||||
*/
|
*/
|
||||||
public function get_item( $request ) {
|
public function get_items( $request ) {
|
||||||
|
|
||||||
$metadatum_id = $request['metadatum_id'];
|
$metadatum_id = $request['metadatum_id'];
|
||||||
$metadatum = $this->metadatum_repository->fetch($metadatum_id);
|
$metadatum = $this->metadatum_repository->fetch($metadatum_id);
|
||||||
|
@ -249,24 +249,20 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
$realResponse = [];
|
$realResponse = [];
|
||||||
|
|
||||||
foreach( $selected as $index => $value ){
|
foreach( $selected as $index => $value ){
|
||||||
|
$row = (object) ['mvalue' => $value, 'metadatum_id' => $metadatum_id ];
|
||||||
$row = ['mvalue' => $value, 'metadatum_id' => $metadatum_id ];
|
|
||||||
$realResponse[] = $row;
|
$realResponse[] = $row;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach( $rawValues as $index => $row0 ){
|
foreach( $rawValues as $index => $row0 ){
|
||||||
|
|
||||||
if( in_array($row0, $selected) ){
|
if( !in_array($row0, $selected) ){
|
||||||
continue;
|
$realResponse[] = (object) ['mvalue' => $row0, 'metadatum_id' => $metadatum_id];
|
||||||
}
|
|
||||||
|
|
||||||
$realResponse[] = ['mvalue' => $row0, 'metadatum_id' => $metadatum_id];
|
|
||||||
|
|
||||||
if( isset($request['number']) && count($realResponse) >= $request['number']){
|
if( isset($request['number']) && count($realResponse) >= $request['number']){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$response = $realResponse;
|
$response = $realResponse;
|
||||||
}
|
}
|
||||||
|
@ -300,8 +296,7 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
foreach ( $response as $key => $item ) {
|
foreach ( $response as $key => $item ) {
|
||||||
|
|
||||||
if( $type === 'Tainacan\Metadata_Types\Taxonomy' ){
|
if( $type === 'Tainacan\Metadata_Types\Taxonomy' ){
|
||||||
|
$result[] = [
|
||||||
$row = [
|
|
||||||
'label' => $item['name'],
|
'label' => $item['name'],
|
||||||
'value' => $item['id'],
|
'value' => $item['id'],
|
||||||
'img' => ( isset($item['header_image']) ) ? $item['header_image'] : false ,
|
'img' => ( isset($item['header_image']) ) ? $item['header_image'] : false ,
|
||||||
|
@ -311,10 +306,8 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
'taxonomy_id' => $this->taxonomy->WP_Post->ID,
|
'taxonomy_id' => $this->taxonomy->WP_Post->ID,
|
||||||
'taxonomy' => ( isset($item['taxonomy']) ) ? $item['taxonomy'] : false,
|
'taxonomy' => ( isset($item['taxonomy']) ) ? $item['taxonomy'] : false,
|
||||||
];
|
];
|
||||||
|
|
||||||
} else if( $type === 'Tainacan\Metadata_Types\Relationship' ){
|
} else if( $type === 'Tainacan\Metadata_Types\Relationship' ){
|
||||||
|
$result[] = [
|
||||||
$row = [
|
|
||||||
'label' => $item['title'],
|
'label' => $item['title'],
|
||||||
'value' => $item['id'],
|
'value' => $item['id'],
|
||||||
'img' => ( isset($item['thumbnail']['thumb']) ) ? $item['thumbnail']['thumb'] : false,
|
'img' => ( isset($item['thumbnail']['thumb']) ) ? $item['thumbnail']['thumb'] : false,
|
||||||
|
@ -322,21 +315,16 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
'total_children' => 0,
|
'total_children' => 0,
|
||||||
'type' => 'Relationship'
|
'type' => 'Relationship'
|
||||||
];
|
];
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
$result[] = [
|
||||||
$row = [
|
'label' => $item->mvalue,
|
||||||
'label' => $item['mvalue'],
|
'value' => $item->mvalue,
|
||||||
'value' => $item['mvalue'],
|
|
||||||
'img' => false,
|
'img' => false,
|
||||||
'parent' => false,
|
'parent' => false,
|
||||||
'total_children' => 0,
|
'total_children' => 0,
|
||||||
'type' => 'Text'
|
'type' => 'Text'
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$result[] = $row;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -355,7 +343,7 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
|
|
||||||
if ( $offset !== '' && $number) {
|
if ( $offset !== '' && $number) {
|
||||||
$per_page = (int) $number;
|
$per_page = (int) $number;
|
||||||
$page = ceil( ( ( (int) $offset ) / $per_page ) + 1 );
|
//$page = ceil( ( ( (int) $offset ) / $per_page ) + 1 );
|
||||||
|
|
||||||
$this->total_items = count( $response );
|
$this->total_items = count( $response );
|
||||||
|
|
||||||
|
@ -382,7 +370,7 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
|
|
||||||
if(isset($args['number'], $args['offset'])){
|
if(isset($args['number'], $args['offset'])){
|
||||||
$number = $args['number'];
|
$number = $args['number'];
|
||||||
$offset = $args['offset'];
|
//$offset = $args['offset'];
|
||||||
|
|
||||||
unset( $args['number'], $args['offset'] );
|
unset( $args['number'], $args['offset'] );
|
||||||
$total_terms = wp_count_terms( $this->taxonomy->get_db_identifier(), $args );
|
$total_terms = wp_count_terms( $this->taxonomy->get_db_identifier(), $args );
|
||||||
|
@ -392,7 +380,7 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
$per_page = (int) $number;
|
$per_page = (int) $number;
|
||||||
$page = ceil( ( ( (int) $offset ) / $per_page ) + 1 );
|
//$page = ceil( ( ( (int) $offset ) / $per_page ) + 1 );
|
||||||
|
|
||||||
$this->total_items = (int) $total_terms ;
|
$this->total_items = (int) $total_terms ;
|
||||||
|
|
||||||
|
@ -494,13 +482,15 @@ class REST_Facets_Controller extends REST_Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @param $rows
|
||||||
*
|
*
|
||||||
|
* @return array
|
||||||
*/
|
*/
|
||||||
private function get_values( $rows ){
|
private function get_values( $rows ){
|
||||||
$values = [];
|
$values = [];
|
||||||
|
|
||||||
foreach( $rows as $row ){
|
foreach( $rows as $row ){
|
||||||
$values[] = $row['mvalue'];
|
$values[] = $row->mvalue;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $values;
|
return $values;
|
||||||
|
|
|
@ -996,7 +996,7 @@ class Metadata extends Repository {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pre_result = $wpdb->get_results( $sql_string, ARRAY_A );
|
$pre_result = $wpdb->get_results( $sql_string, OBJECT );
|
||||||
|
|
||||||
if ( ! empty( $pre_result ) ) {
|
if ( ! empty( $pre_result ) ) {
|
||||||
foreach ( $pre_result as $pre ) {
|
foreach ( $pre_result as $pre ) {
|
||||||
|
@ -1045,7 +1045,7 @@ class Metadata extends Repository {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pre_result = $wpdb->get_results( $sql_string, ARRAY_A );
|
$pre_result = $wpdb->get_results( $sql_string, OBJECT );
|
||||||
|
|
||||||
if ( ! empty( $pre_result ) ) {
|
if ( ! empty( $pre_result ) ) {
|
||||||
foreach ( $pre_result as $pre ) {
|
foreach ( $pre_result as $pre ) {
|
||||||
|
|
|
@ -753,10 +753,11 @@ abstract class Repository {
|
||||||
$key_array = array();
|
$key_array = array();
|
||||||
|
|
||||||
foreach ( $array as $val ) {
|
foreach ( $array as $val ) {
|
||||||
if ( ! in_array( $val[ $key ], $key_array ) ) {
|
if ( ! in_array( $val->$key, $key_array ) ) {
|
||||||
$key_array[ $i ] = $val[ $key ];
|
$key_array[ $i ] = $val->$key;
|
||||||
$temp_array[ $i ] = $val;
|
$temp_array[ $i ] = $val;
|
||||||
}
|
}
|
||||||
|
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -483,15 +483,10 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
|
||||||
|
|
||||||
//=======================
|
//=======================
|
||||||
|
|
||||||
$query = [
|
|
||||||
'fetch' => 'all_metadatum_values'
|
|
||||||
];
|
|
||||||
|
|
||||||
$request = new \WP_REST_Request(
|
$request = new \WP_REST_Request(
|
||||||
'GET',
|
'GET',
|
||||||
$this->namespace . '/collection/' . $collection->get_id() . '/metadata/' . $metadatum->get_id()
|
$this->namespace . '/collection/' . $collection->get_id() . '/facets/' . $metadatum->get_id()
|
||||||
);
|
);
|
||||||
$request->set_query_params($query);
|
|
||||||
|
|
||||||
//=======================
|
//=======================
|
||||||
|
|
||||||
|
@ -503,7 +498,7 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
|
||||||
$data1 = $response1->get_data();
|
$data1 = $response1->get_data();
|
||||||
|
|
||||||
$this->assertCount(1, $data1);
|
$this->assertCount(1, $data1);
|
||||||
$this->assertEquals('12/12/2017', $data1[0]['mvalue']);
|
$this->assertEquals('12/12/2017', $data1[0]['value']);
|
||||||
|
|
||||||
//=======================
|
//=======================
|
||||||
|
|
||||||
|
@ -515,7 +510,7 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
|
||||||
$data1 = $response1->get_data();
|
$data1 = $response1->get_data();
|
||||||
|
|
||||||
$this->assertCount(1, $data1);
|
$this->assertCount(1, $data1);
|
||||||
$this->assertEquals('12/12/2017', $data1[0]['mvalue']);
|
$this->assertEquals('12/12/2017', $data1[0]['value']);
|
||||||
|
|
||||||
//=======================
|
//=======================
|
||||||
|
|
||||||
|
@ -528,8 +523,8 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
|
||||||
|
|
||||||
// Only two without duplicates
|
// Only two without duplicates
|
||||||
$this->assertCount(2, $data2);
|
$this->assertCount(2, $data2);
|
||||||
$this->assertEquals('12/12/2017', $data2[0]['mvalue']);
|
$this->assertEquals('12/12/2017', $data2[0]['value']);
|
||||||
$this->assertEquals('02/03/2018', $data2[1]['mvalue']);
|
$this->assertEquals('02/03/2018', $data2[1]['value']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue