API Getting all items for a especified collection
This commit is contained in:
parent
3d2301d416
commit
a7e60976a5
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "e0eb272f68b3132a64ef299d34cf9700",
|
"content-hash": "64fbb4d01225b482970da995b00dccfb",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "respect/validation",
|
"name": "respect/validation",
|
||||||
|
|
|
@ -69,8 +69,35 @@ class TAINACAN_REST_Items_Controller extends WP_REST_Controller {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepare_item_for_response( $item, $request ) {
|
||||||
|
if (!empty($item) && $item instanceof WP_Query){
|
||||||
|
$items_as_array = [];
|
||||||
|
|
||||||
|
if ($item->have_posts()) {
|
||||||
|
while ( $item->have_posts() ) {
|
||||||
|
$item->the_post();
|
||||||
|
$ite = new Entities\Item($item->post);
|
||||||
|
array_push($items_as_array, $ite->__toJSON());
|
||||||
|
|
||||||
|
}
|
||||||
|
wp_reset_postdata();
|
||||||
|
}
|
||||||
|
|
||||||
|
return json_encode($items_as_array);
|
||||||
|
} elseif(!empty($item)){
|
||||||
|
return $item->__toJSON();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $item;
|
||||||
|
}
|
||||||
|
|
||||||
public function get_items( $request ) {
|
public function get_items( $request ) {
|
||||||
return parent::get_items( $request ); // TODO: Change the autogenerated stub
|
$collection_id = $request['collection_id'];
|
||||||
|
$items = $this->items_repository->fetch([], $collection_id, 'WP_Query');
|
||||||
|
|
||||||
|
$response = $this->prepare_item_for_response($items, $request);
|
||||||
|
|
||||||
|
return new WP_REST_Response($response, 201);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_item_permissions_check( $request ) {
|
public function get_item_permissions_check( $request ) {
|
||||||
|
|
|
@ -130,10 +130,10 @@ abstract class Repository {
|
||||||
|
|
||||||
if( $output === 'WP_Query'){
|
if( $output === 'WP_Query'){
|
||||||
return $WP_Query;
|
return $WP_Query;
|
||||||
}else if( $output === 'OBJECT' ) {
|
} else if( $output === 'OBJECT' ) {
|
||||||
$result = [];
|
$result = [];
|
||||||
|
|
||||||
if ( $WP_Query->have_posts() ){
|
if ( $WP_Query->have_posts() ){
|
||||||
/**
|
/**
|
||||||
* Using WordPress Loop here would cause problems
|
* Using WordPress Loop here would cause problems
|
||||||
* @see https://core.trac.wordpress.org/ticket/18408
|
* @see https://core.trac.wordpress.org/ticket/18408
|
||||||
|
@ -154,14 +154,14 @@ abstract class Repository {
|
||||||
* and the mapped properties for the repository.
|
* and the mapped properties for the repository.
|
||||||
*
|
*
|
||||||
* For example, you can use any of the following methods to browse collections by name:
|
* For example, you can use any of the following methods to browse collections by name:
|
||||||
* $TaincanCollections->fetch(['title' => 'test']);
|
* $TainacanCollections->fetch(['title' => 'test']);
|
||||||
* $TaincanCollections->fetch(['name' => 'test']);
|
* $TainacanCollections->fetch(['name' => 'test']);
|
||||||
*
|
*
|
||||||
* The property `name` is transformed into the native WordPress property `post_title`. (actually only title for query purpouses)
|
* The property `name` is transformed into the native WordPress property `post_title`. (actually only title for query purpouses)
|
||||||
*
|
*
|
||||||
* Example 2, this also works with properties mapped to postmeta. The following methods are the same:
|
* Example 2, this also works with properties mapped to postmeta. The following methods are the same:
|
||||||
* $TaincanMetadatas->fetch(['required' => 'yes']);
|
* $TainacanMetadatas->fetch(['required' => 'yes']);
|
||||||
* $TaincanMetadatas->fetch(['meta_query' => [
|
* $TainacanMetadatas->fetch(['meta_query' => [
|
||||||
* [
|
* [
|
||||||
* 'key' => 'required',
|
* 'key' => 'required',
|
||||||
* 'value' => 'yes'
|
* 'value' => 'yes'
|
||||||
|
|
|
@ -21,5 +21,5 @@ require_once('dev-interface/class-tainacan-dev-interface.php');
|
||||||
$Tainacan_Dev_interface = new \Tainacan\DevInterface\DevInterface();
|
$Tainacan_Dev_interface = new \Tainacan\DevInterface\DevInterface();
|
||||||
|
|
||||||
function tnc_enable_dev_wp_interface() {
|
function tnc_enable_dev_wp_interface() {
|
||||||
return defined('TNC_ENABLE_DEV_WP_INTERFACE') && true === TNC_ENABLE_DEV_WP_INTERFACE ? true : false;
|
//return defined('TNC_ENABLE_DEV_WP_INTERFACE') && true === TNC_ENABLE_DEV_WP_INTERFACE ? true : false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue