protected function result() { $request_body = $this->input(); $queue_name = $this->validate_queue($request_body['queue']); if (is_wp_error($queue_name)) { return $queue_name; } require_once JETPACK__PLUGIN_DIR . 'sync/class.jetpack-sync-queue.php'; if (!isset($request_body['buffer_id'])) { return new WP_Error('missing_buffer_id', 'Please provide a buffer id', 400); } if (!isset($request_body['item_ids']) || !is_array($request_body['item_ids'])) { return new WP_Error('missing_item_ids', 'Please provide a list of item ids in the item_ids argument', 400); } //Limit to A-Z,a-z,0-9,_,- $request_body['buffer_id'] = preg_replace('/[^A-Za-z0-9]/', '', $request_body['buffer_id']); $request_body['item_ids'] = array_filter(array_map(array('Jetpack_JSON_API_Sync_Close_Endpoint', 'sanitize_item_ids'), $request_body['item_ids'])); $buffer = new Jetpack_Sync_Queue_Buffer($request_body['buffer_id'], $request_body['item_ids']); $queue = new Jetpack_Sync_Queue($queue_name); $response = $queue->close($buffer, $request_body['item_ids']); if (is_wp_error($response)) { return $response; } return array('success' => $response); }