PluginProbe
Assistant – Every Day Productivity Apps / trunk
Assistant – Every Day Productivity Apps vtrunk
1.5.5 trunk 0.1.0 0.2.0 0.2.1 0.2.2 0.3.0 0.3.1 0.4 0.4.1 0.4.2 0.5.0 0.5.1 0.6.0 0.7.0 0.7.0.2 0.7.0.3 0.7.0.4 0.7.0.5 0.7.0.6 0.7.0.7 0.7.0.8 0.7.0.9 0.7.1 1.0 All 71 releases
assistant / backend / src / Controllers / SearchController.php

SearchController.php in Assistant – Every Day Productivity Apps trunk, at backend/src/Controllers/SearchController.php

55 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3
4 namespace FL\Assistant\Controllers;
5
6 use FL\Assistant\System\Contracts\ControllerAbstract;
7 use WP_REST_Request;
8 use WP_REST_Server;
9
10 /**
11 * Class SearchController
12 *
13 * Handles retrieving search results via the REST API.
14 * Results are obtained by calling REST routes registered
15 * in an Assistant app's config.
16 *
17 * @package FL\Assistant\Controllers
18 */
19 class SearchController extends ControllerAbstract {
20
21 public function register_routes() {
22 $this->route(
23 '/search', [
24 [
25 'methods' => WP_REST_Server::READABLE,
26 'callback' => [ $this, 'results' ],
27 'permission_callback' => function () {
28 return is_user_logged_in();
29 },
30 ],
31 ]
32 );
33 }
34
35 /**
36 * Returns search results for the endpoints sent
37 * in the current request.
38 *
39 * @param WP_REST_Request $request
40 *
41 * @return array
42 */
43 public function results( WP_REST_Request $request ) {
44 $response = [];
45 $routes = $request->get_param( 'routes' );
46 $requests = array_reduce( $routes, 'rest_preload_api_request', [] );
47
48 foreach ( $requests as $route => $request ) {
49 $response[] = $request['body'];
50 }
51
52 return rest_ensure_response( $response );
53 }
54 }
55