Added error messages
This commit is contained in:
parent
fbc84371c5
commit
e4175f83ab
|
@ -169,7 +169,13 @@ class TAINACAN_REST_Collections_Controller extends WP_REST_Controller {
|
|||
return new WP_REST_Response($collection->__toJSON(), 201);
|
||||
}
|
||||
|
||||
return new WP_REST_Response($prepared_post->get_errors(), 400);
|
||||
return new WP_REST_Response([
|
||||
[
|
||||
'error_message' => __('One or more values are invalid.', 'tainacan'),
|
||||
'errors' => $prepared_post->get_errors()
|
||||
],
|
||||
$prepared_post->__toJSON()
|
||||
], 400);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -196,7 +196,14 @@ class TAINACAN_REST_Items_Controller extends WP_REST_Controller {
|
|||
return new WP_REST_Response($metadata_added->get_item()->__toJSON(), 201 );
|
||||
}
|
||||
|
||||
return new WP_REST_Response($item->get_errors(), 400);
|
||||
|
||||
return new WP_REST_Response([
|
||||
[
|
||||
'error_message' => __('One or more values are invalid.', 'tainacan'),
|
||||
'errors' => $item->get_errors()
|
||||
],
|
||||
$item->__toJSON()
|
||||
], 400);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -45,6 +45,11 @@ class TAINACAN_REST_Metadata_Controller extends WP_REST_Controller {
|
|||
'callback' => array($this, 'create_item'),
|
||||
'permission_callback' => array($this, 'create_item_permissions_check')
|
||||
),
|
||||
array(
|
||||
'methods' => WP_REST_Server::DELETABLE,
|
||||
'callback' => array($this, 'delete_item'),
|
||||
'permission_callback' => array($this, 'delete_teim_permissions_check')
|
||||
)
|
||||
)
|
||||
);
|
||||
register_rest_route($this->namespace, '/' . $this->rest_base . '/item/(?P<item_id>[\d]+)',
|
||||
|
@ -119,7 +124,13 @@ class TAINACAN_REST_Metadata_Controller extends WP_REST_Controller {
|
|||
return new WP_REST_Response($this->metadata->__toJSON(), 201);
|
||||
}
|
||||
} else {
|
||||
return new WP_REST_Response($this->metadata->get_errors(), 200);
|
||||
return new WP_REST_Response([
|
||||
[
|
||||
'error_message' => __('One or more values are invalid.', 'tainacan'),
|
||||
'errors' => $this->metadata->get_errors()
|
||||
],
|
||||
$this->metadata->__toJSON(),
|
||||
], 400);
|
||||
}
|
||||
} elseif (!empty($request['item_id']) && !empty($request->get_body())){
|
||||
$body = json_decode($request->get_body(), true);
|
||||
|
@ -139,7 +150,13 @@ class TAINACAN_REST_Metadata_Controller extends WP_REST_Controller {
|
|||
|
||||
return new WP_REST_Response( $metadata_updated->__toJSON(), 201 );
|
||||
} else {
|
||||
return new WP_REST_Response( $item_metadata->get_errors(), 200);
|
||||
return new WP_REST_Response( [
|
||||
[
|
||||
'error_message' => __('One or more values are invalid.', 'tainacan'),
|
||||
'errors' => $item_metadata->get_errors()
|
||||
],
|
||||
$item_metadata->__toJSON(),
|
||||
], 400);
|
||||
}
|
||||
} else {
|
||||
return new WP_REST_Response($request->get_body(), 400);
|
||||
|
@ -155,13 +172,7 @@ class TAINACAN_REST_Metadata_Controller extends WP_REST_Controller {
|
|||
|
||||
if($request['item_id']) {
|
||||
foreach ( $item as $metadata ) {
|
||||
|
||||
$metadata_as_json[] = json_encode(
|
||||
array_merge(
|
||||
json_decode($metadata->get_metadata()->__toJSON(), true),
|
||||
['value' => $metadata->get_value()]
|
||||
)
|
||||
);
|
||||
$metadata_as_json[] = $metadata->__toJSON();
|
||||
}
|
||||
} else {
|
||||
foreach ( $item as $metadata ) {
|
||||
|
@ -182,20 +193,18 @@ class TAINACAN_REST_Metadata_Controller extends WP_REST_Controller {
|
|||
|
||||
$prepared_item = $this->prepare_item_for_response($collection_metadata, $request);
|
||||
|
||||
return new WP_REST_Response($prepared_item, 200);
|
||||
} elseif(!empty($request['item_id'])){
|
||||
$item_id = $request['item_id'];
|
||||
|
||||
$item = new Entities\Item($item_id);
|
||||
|
||||
$item_metadata = $this->item_metadata_repository->fetch($item, 'OBJECT');
|
||||
|
||||
$prepared_item = $this->prepare_item_for_response($item_metadata, $request);
|
||||
|
||||
return new WP_REST_Response($prepared_item, 200);
|
||||
}
|
||||
|
||||
return new WP_REST_Response($request->get_body(), 400);
|
||||
$item_id = $request['item_id'];
|
||||
|
||||
$item = new Entities\Item($item_id);
|
||||
|
||||
$item_metadata = $this->item_metadata_repository->fetch($item, 'OBJECT');
|
||||
|
||||
$prepared_item = $this->prepare_item_for_response($item_metadata, $request);
|
||||
|
||||
return new WP_REST_Response($prepared_item, 200);
|
||||
}
|
||||
|
||||
public function get_item_permissions_check( $request ) {
|
||||
|
@ -210,6 +219,20 @@ class TAINACAN_REST_Metadata_Controller extends WP_REST_Controller {
|
|||
return parent::get_collection_params(); // TODO: Change the autogenerated stub
|
||||
}
|
||||
|
||||
public function delete_item( $request ) {
|
||||
if(!empty($request->get_body())){
|
||||
$body = json_decode($request->get_body());
|
||||
|
||||
$collection_id = $request['collection_id'];
|
||||
$metadata_id = $body['metadata_id'];
|
||||
|
||||
return new WP_REST_Response(['error' => 'Not Implemented.'], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete_item_permissions_check( $request ) {
|
||||
return parent::delete_item_permissions_check( $request ); // TODO: Change the autogenerated stub
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -27,9 +27,10 @@ class Item_Metadata_Entity extends Entity {
|
|||
}
|
||||
|
||||
public function __toJSON(){
|
||||
$json['value'] = $this->get_value();
|
||||
$json['item'] = $this->get_item();
|
||||
$json['metadata'] = $this->get_metadata();
|
||||
$json['value'] = $this->get_value();
|
||||
$json['item'] = $this->get_item()->__toJSON();
|
||||
$json['metadata'] = $this->get_metadata()->__toJSON();
|
||||
|
||||
return json_encode($json);
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,9 @@ class Item_Metadata extends Repository {
|
|||
delete_post_meta($item_metadata->item->get_id(), $item_metadata->metadata->get_id());
|
||||
|
||||
if (is_array($item_metadata->get_value())){
|
||||
foreach ($item_metadata->get_value() as $value){
|
||||
$values = $item_metadata->get_value();
|
||||
|
||||
foreach ($values as $value){
|
||||
add_post_meta($item_metadata->item->get_id(), $item_metadata->metadata->get_id(), wp_slash( $value ));
|
||||
}
|
||||
}
|
||||
|
@ -34,8 +36,23 @@ class Item_Metadata extends Repository {
|
|||
|
||||
}
|
||||
|
||||
public function delete($object){
|
||||
|
||||
/**
|
||||
* Delete Item Metadata
|
||||
*
|
||||
* @param $item_metadata
|
||||
*
|
||||
* @return mixed|void
|
||||
*/
|
||||
public function delete($item_metadata){
|
||||
// if(is_array($item_metadata->get_value())){
|
||||
// $values = $item_metadata->get_value();
|
||||
//
|
||||
// foreach ($values as $value){
|
||||
// delete_post_meta($item_metadata->item->get_id(), $item_metadata->metadata->get_id(), wp_slash($value));
|
||||
// }
|
||||
// } else {
|
||||
// delete_post_meta($item_metadata->item->get_id(), $item_metadata->metadata->get_id(), wp_slash($item_metadata->get_value()));
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -58,11 +58,12 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
|
|||
|
||||
$response = $this->server->dispatch($request);
|
||||
|
||||
$metadata_updated = json_decode($response->get_data(), true);
|
||||
$item_metadata_updated = json_decode($response->get_data(), true);
|
||||
$metadata = json_decode($item_metadata_updated['metadata'], true);
|
||||
|
||||
$this->assertEquals($metadata_added['id'], $metadata_updated['id']);
|
||||
$this->assertEquals($metadata_added['id'], $metadata['id']);
|
||||
|
||||
$metav = get_post_meta($item->get_id(), $metadata_updated['id'], true);
|
||||
$metav = get_post_meta($item->get_id(), $metadata['id'], true);
|
||||
|
||||
$this->assertEquals('Valorado', $metav);
|
||||
}
|
||||
|
@ -139,10 +140,11 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
|
|||
|
||||
$this->assertContainsOnly('string', $data);
|
||||
|
||||
$metadata = json_decode($data[0], true);
|
||||
$item_metadata = json_decode($data[0], true);
|
||||
$metadata = json_decode($item_metadata['metadata'], true);
|
||||
|
||||
$this->assertEquals('Data', $metadata['name']);
|
||||
$this->assertEquals('12/12/2017', $metadata['value']);
|
||||
$this->assertEquals('12/12/2017', $item_metadata['value']);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue