This commit is contained in:
Vinícius Nunes 2019-12-10 12:56:30 -03:00
parent e28729b023
commit c2f02e048d
3 changed files with 44 additions and 40 deletions

View File

@ -262,19 +262,20 @@ class REST_Bulkedit_Controller extends REST_Controller {
global $Tainacan_Generic_Process_Handler;
$bulk = $Tainacan_Generic_Process_Handler->get_process_instance_by_session_id($group_id);
$return = $this->prepare_item_for_response($bulk, $request);
if (0 === $return['items_count']) {
if ($bulk == false) {
return new \WP_REST_Response([
'error_message' => __('Group not found', 'tainacan'),
], 404);
}
$return = $this->prepare_item_for_response($bulk, $request);
return new \WP_REST_Response($return, 200);
}
function prepare_item_for_response($bulk_object, $request) {
$options = $bulk_object->get_options();
$return = [
'id' => $bulk_object->get_id()
'id' => $bulk_object->get_id(),
'options' => $options
];
return $return;
}
@ -313,7 +314,7 @@ class REST_Bulkedit_Controller extends REST_Controller {
"value" => isset($body['new_value']) ? $body['new_value'] : $body['value'],
"method" => $method,
"old_value" => isset($body['old_value']) ? $body['old_value'] : null,
"metadatum_id" => $body['metadatum_id'],
"metadatum_id" => isset($body['metadatum_id']) ? $body['metadatum_id'] : null,
];
$process->set_bulk_edit_data($bulk_edit_data);
$bg_bulk = $Tainacan_Generic_Process_Handler->add_to_queue($process);

View File

@ -132,7 +132,7 @@ class Bulk_Edit_Process extends Generic_Process {
$count = $this->get_in_step_count();
if( isset($items_ids[$count]) ) {
$this->add_log( sprintf( __( 'creating bulk edit control metadata for item: "%d"', 'tainacan' ), $items_ids[$count++] ) );
$this->add_log( sprintf( __( 'creating bulk edit control metadata for item: "%d"', 'tainacan' ), $items_ids[$count] ) );
add_post_meta($items_ids[$count++], $this->meta_key, $this->get_group_id());
return $count;
} else {

View File

@ -915,7 +915,7 @@ class BulkEdit extends TAINACAN_UnitApiTestCase {
$this->assertTrue(is_string($data['id']));
$this->assertEquals(17, $data['items_count']);
//$this->assertEquals(17, $data['items_count']);
}
@ -963,7 +963,7 @@ class BulkEdit extends TAINACAN_UnitApiTestCase {
$this->assertTrue(is_string($data['id']));
$this->assertEquals(20, $data['items_count']);
//$this->assertEquals(20, $data['items_count']);
}
@ -977,31 +977,27 @@ class BulkEdit extends TAINACAN_UnitApiTestCase {
$ids = array_slice($this->items_ids, 2, 14);
$bulk = new \Tainacan\Bulk_Edit([
'items_ids' => $ids,
]);
$args = ['items_ids' => $ids];
global $Tainacan_Generic_Process_Handler;
$process = $Tainacan_Generic_Process_Handler->initialize_generic_process('bulk_edit', $bulk->get_id());
$process = $Tainacan_Generic_Process_Handler->initialize_generic_process('bulk_edit');
$process->create_bulk_edit($args);
$Tainacan_Generic_Process_Handler->save_process_instance($process);
// mimick the api endpoint
$bulk_id = $bulk->get_id();
$bulk_id = $process->get_id();
$process = $Tainacan_Generic_Process_Handler->get_process_instance_by_session_id($bulk_id);
var_dump($process);
var_dump($bulk_id);
if ($process !== false) {
$bulk_edit_data = [
"value" => 'superduper',
"method" => 'add_value',
//"old_value" => isset($body['old_value']) ? $body['old_value'] : null,
"old_value" => null,
"metadatum_id" => $this->multiple_meta->get_id(),
];
$process->set_bulk_edit_data($bulk_edit_data);
while (false !== $process->run()) {
var_dump('run');
continue;
}
@ -1028,25 +1024,28 @@ class BulkEdit extends TAINACAN_UnitApiTestCase {
public function test_api_set_status() {
$Tainacan_Items = \Tainacan\Repositories\Items::get_instance();
$ids = array_slice($this->items_ids, 2, 14);
$args = ['items_ids' => $ids];
$bulk = new \Tainacan\Bulk_Edit([
'items_ids' => $ids,
]);
global $Tainacan_Generic_Process_Handler;
$process = $Tainacan_Generic_Process_Handler->initialize_generic_process('bulk_edit');
$process->create_bulk_edit($args);
$Tainacan_Generic_Process_Handler->save_process_instance($process);
// mimick the api endpoint
$bulk_id = $process->get_id();
$body = json_encode([
'value' => 'private'
]);
$process = $Tainacan_Generic_Process_Handler->get_process_instance_by_session_id($bulk_id);
if ($process !== false) {
$bulk_edit_data = [
"value" => 'private',
"method" => 'set_status'
];
$process->set_bulk_edit_data($bulk_edit_data);
$request = new \WP_REST_Request(
'POST', $this->api_baseroute . '/' . $bulk->get_id() . '/set_status'
);
$request->set_body( $body );
$response = $this->server->dispatch($request);
while (false !== $process->run()) {
continue;
}
}
$items = $Tainacan_Items->fetch([
'status' => 'private',
@ -1413,25 +1412,29 @@ class BulkEdit extends TAINACAN_UnitApiTestCase {
'order' => 'ASC'
];
$bulk = new \Tainacan\Bulk_Edit([
$args = [
'query' => $query,
'collection_id' => $this->collection->get_id()
]);
];
global $Tainacan_Generic_Process_Handler;
$process = $Tainacan_Generic_Process_Handler->initialize_generic_process('bulk_edit');
$process->create_bulk_edit($args);
$Tainacan_Generic_Process_Handler->save_process_instance($process);
// mimick the api endpoint
$bulk_id = $process->get_id();
$request = new \WP_REST_Request(
'GET', $this->api_baseroute . '/' . $bulk->get_id()
'GET', $this->api_baseroute . '/' . $bulk_id
);
$response = $this->server->dispatch($request);
$data = $response->get_data();
$this->assertEquals($bulk->get_id(), $data['id']);
$this->assertEquals($bulk->get_options()['order'], $data['options']['order']);
$this->assertEquals($bulk->get_options()['orderby'], $data['options']['orderby']);
$this->assertEquals($bulk->count_posts(), $data['items_count']);
$this->assertEquals($process->get_id(), $data['id']);
$this->assertEquals($process->get_options()['order'], $data['options']['order']);
$this->assertEquals($process->get_options()['orderby'], $data['options']['orderby']);
$request = new \WP_REST_Request(
'GET', $this->api_baseroute . '/fefefe23232'