File "class-start.php"
Full path: /home/webcknlt/admissiontell.com/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-import/src/endpoints/class-start.php
File
size: 3.96 B (3.96 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
<?php
/**
* Start REST route
*
* @package automattic/jetpack-import
*/
namespace Automattic\Jetpack\Import\Endpoints;
use Automattic\Jetpack\Import\Main;
use WP_Error;
use WP_REST_Request;
use WP_REST_Response;
/**
* Class Start
*
* This class is used to start the import process.
*/
class Start extends \WP_REST_Controller {
/**
* Base class
*/
use Import;
/**
* Constructor.
*/
public function __construct() {
$this->rest_base = 'start';
}
/**
* Get the register route options.
*
* @see register_rest_route()
*
* @return array The options.
*/
protected function get_route_options() {
return array(
array(
'methods' => \WP_REST_Server::READABLE,
'callback' => array( $this, 'get_item' ),
'permission_callback' => array( $this, 'import_permissions_callback' ),
'args' => array(),
),
'schema' => array( $this, 'get_public_item_schema' ),
);
}
/**
* Retrieves main informations.
*
* @since 4.7.0
*
* @param WP_REST_Request $request Full details about the request.
* @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
*/
public function get_item( $request ) {
$items = array(
'max_batch_items' => apply_filters( 'rest_get_max_batch_size', 25 ),
'max_execution_time' => (int) ini_get( 'max_execution_time' ),
'max_input_time' => (int) ini_get( 'max_input_time' ),
'mime_types' => get_allowed_mime_types(),
'posts_max_id' => (int) $this->get_posts_max_id(),
'version' => Main::PACKAGE_VERSION,
);
$response = array();
foreach ( $items as $name => $value ) {
/**
* Filters the value of a item recognized by the REST API.
*/
$response[ $name ] = apply_filters( 'jetpack_import_rest_get_start', $value, $name, $request );
}
return $response;
}
/**
* Retrieves the start values schema, conforming to JSON Schema.
*
* @return array Item schema data.
*/
public function get_item_schema() {
if ( $this->schema ) {
return $this->add_additional_fields_schema( $this->schema );
}
$schema = array(
'$schema' => 'http://json-schema.org/draft-04/schema#',
'title' => 'import-start',
'type' => 'object',
'properties' => array(
'max_batch_items' => array(
'description' => __( 'Max batch size.', 'jetpack-import' ),
'type' => 'integer',
'context' => array( 'view' ),
'readonly' => true,
),
'max_execution_time' => array(
'description' => __( 'Max execution time.', 'jetpack-import' ),
'type' => 'integer',
'context' => array( 'view' ),
'readonly' => true,
),
'max_input_time' => array(
'description' => __( 'Max execution input time.', 'jetpack-import' ),
'type' => 'integer',
'context' => array( 'view' ),
'readonly' => true,
),
'mime_types' => array(
'description' => __( 'Upload accepted mime types.', 'jetpack-import' ),
'type' => 'array',
'items' => array( 'type' => 'string' ),
'context' => array( 'view' ),
'readonly' => true,
),
'posts_max_id' => array(
'description' => __( 'Last posts autogenerated ID.', 'jetpack-import' ),
'type' => 'integer',
'context' => array( 'view' ),
'readonly' => true,
),
'version' => array(
'description' => __( 'Version of the import package.', 'jetpack-import' ),
'type' => 'string',
'context' => array( 'view' ),
'readonly' => true,
),
),
);
$this->schema = $schema;
return $this->add_additional_fields_schema( $this->schema );
}
/**
* Get the last posts autogenerated ID.
*/
private function get_posts_max_id() {
global $wpdb;
// phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching
$max_id = $wpdb->get_var( "SELECT MAX(ID) FROM $wpdb->posts" );
return $max_id;
}
}