51 lines
1.2 KiB
PHP
51 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace StringLocator\REST;
|
|
|
|
use StringLocator\Base\REST;
|
|
use StringLocator\String_Locator;
|
|
|
|
class Search extends REST {
|
|
|
|
protected $rest_base = 'search';
|
|
|
|
public function __construct() {
|
|
parent::__construct();
|
|
}
|
|
|
|
public function register_rest_route() {
|
|
register_rest_route(
|
|
$this->namespace,
|
|
$this->rest_base,
|
|
array(
|
|
'methods' => 'POST',
|
|
'callback' => array( $this, 'perform_search' ),
|
|
'permission_callback' => array( $this, 'permission_callback' ),
|
|
)
|
|
);
|
|
}
|
|
|
|
public function permission_callback() {
|
|
return current_user_can( String_Locator::$search_capability );
|
|
}
|
|
|
|
public function perform_search( \WP_REST_Request $request ) {
|
|
$handler = new \StringLocator\Search();
|
|
|
|
/**
|
|
* Filter the search handler used to find strings.
|
|
*
|
|
* @attr object $handler The handler performing searches.
|
|
* @attr \WP_REST_Request $request The request received by the REST API handler.
|
|
*/
|
|
$handler = apply_filters( 'string_locator_search_handler', $handler, $request );
|
|
|
|
return array(
|
|
'success' => true,
|
|
'data' => $handler->run( $request->get_param( 'filenum' ) ),
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
new Search();
|