PluginProbe
Redirection / 3.6
Redirection v3.6
5.10.0 5.9.0 5.8.1 5.8.0 3.7.2 3.7.3 4.0 4.0.1 4.1 4.1.1 4.2 4.2.1 4.2.2 4.2.3 4.3 4.3.1 4.3.2 4.3.3 4.4 4.4.1 4.4.2 4.5 4.5.1 4.6.2 4.7.1 All 130 releases
← All changes | api/api-plugin.php +4 -105 4.23.6 View file →
@@ -6,22 +6,9 @@
6 6 class Redirection_Api_Plugin extends Redirection_Api_Route {
7 7 public function __construct( $namespace ) {
8 8 register_rest_route( $namespace, '/plugin', array(
9 9 $this->get_route( WP_REST_Server::READABLE, 'route_status' ),
10 - ) );
11 -
12 - register_rest_route( $namespace, '/plugin', array(
13 10 $this->get_route( WP_REST_Server::EDITABLE, 'route_fixit' ),
14 - 'args' => [
15 - 'name' => array(
16 - 'description' => 'Name',
17 - 'type' => 'string',
18 - ),
19 - 'value' => array(
20 - 'description' => 'Value',
21 - 'type' => 'string',
22 - ),
23 - ],
24 11 ) );
25 12
26 13 register_rest_route( $namespace, '/plugin/delete', array(
27 14 $this->get_route( WP_REST_Server::EDITABLE, 'route_delete' ),
@@ -27,81 +14,24 @@
27 14 $this->get_route( WP_REST_Server::EDITABLE, 'route_delete' ),
28 15 ) );
29 16
30 17 register_rest_route( $namespace, '/plugin/test', array(
31 - $this->get_route( WP_REST_Server::ALLMETHODS, 'route_test' ),
18 + $this->get_route( WP_REST_Server::EDITABLE, 'route_test' ),
32 19 ) );
33 -
34 - register_rest_route( $namespace, '/plugin/post', array(
35 - $this->get_route( WP_REST_Server::READABLE, 'route_match_post' ),
36 - 'args' => [
37 - 'text' => [
38 - 'description' => 'Text to match',
39 - 'type' => 'string',
40 - ],
41 - ],
42 - ) );
43 -
44 - register_rest_route( $namespace, '/plugin/database', array(
45 - $this->get_route( WP_REST_Server::EDITABLE, 'route_database' ),
46 - 'args' => array(
47 - 'description' => 'Upgrade parameter',
48 - 'type' => 'enum',
49 - 'enum' => array(
50 - 'stop',
51 - 'skip',
52 - ),
53 - ),
54 - ) );
55 20 }
56 21
57 - public function route_match_post( WP_REST_Request $request ) {
58 - $params = $request->get_params();
59 - $search = isset( $params['text'] ) ? $params['text'] : false;
60 - $results = [];
61 -
62 - if ( $search ) {
63 - global $wpdb;
64 -
65 - $posts = $wpdb->get_results(
66 - $wpdb->prepare(
67 - "SELECT ID,post_title,post_name FROM $wpdb->posts WHERE post_status='publish' AND (post_title LIKE %s OR post_name LIKE %s)",
68 - '%' . $wpdb->esc_like( $search ) . '%', '%' . $wpdb->esc_like( $search ) . '%'
69 - )
70 - );
71 -
72 - foreach ( (array) $posts as $post ) {
73 - $results[] = [
74 - 'title' => $post->post_title,
75 - 'slug' => $post->post_name,
76 - 'url' => get_permalink( $post->ID ),
77 - ];
78 - }
79 - }
80 -
81 - return $results;
82 - }
83 -
84 22 public function route_status( WP_REST_Request $request ) {
85 23 include_once dirname( REDIRECTION_FILE ) . '/models/fixer.php';
86 24
87 25 $fixer = new Red_Fixer();
88 - return $fixer->get_json();
26 + return $fixer->get_status();
89 27 }
90 28
91 29 public function route_fixit( WP_REST_Request $request ) {
92 30 include_once dirname( REDIRECTION_FILE ) . '/models/fixer.php';
93 31
94 - $params = $request->get_params();
95 32 $fixer = new Red_Fixer();
96 -
97 - if ( isset( $params['name'] ) && isset( $params['value'] ) ) {
98 - $fixer->save_debug( $params['name'], $params['value'] );
99 - } else {
100 - $fixer->fix( $fixer->get_status() );
101 - }
102 -
103 - return $fixer->get_json();
33 + return $fixer->fix( $fixer->get_status() );
104 34 }
105 35
106 36 public function route_delete() {
107 37 if ( is_multisite() ) {
@@ -117,41 +47,10 @@
117 47
118 48 return array( 'location' => admin_url() . 'plugins.php' );
119 49 }
120 50
121 - public function route_test( WP_REST_Request $request ) {
51 + public function route_test() {
122 52 return array(
123 53 'success' => true,
124 54 );
125 - }
126 -
127 - public function route_database( WP_REST_Request $request ) {
128 - $params = $request->get_params();
129 - $status = new Red_Database_Status();
130 - $upgrade = false;
131 -
132 - if ( isset( $params['upgrade'] ) && in_array( $params['upgrade'], [ 'stop', 'skip' ], true ) ) {
133 - $upgrade = $params['upgrade'];
134 - }
135 -
136 - // Check upgrade
137 - if ( ! $status->needs_updating() && ! $status->needs_installing() ) {
138 - /* translators: version number */
139 - $status->set_error( sprintf( __( 'Your database does not need updating to %s.', 'redirection' ), REDIRECTION_DB_VERSION ) );
140 -
141 - return $status->get_json();
142 - }
143 -
144 - if ( $upgrade === 'stop' ) {
145 - $status->stop_update();
146 - } elseif ( $upgrade === 'skip' ) {
147 - $status->set_next_stage();
148 - }
149 -
150 - if ( $upgrade === false || $status->get_current_stage() ) {
151 - $database = new Red_Database();
152 - $database->apply_upgrade( $status );
153 - }
154 -
155 - return $status->get_json();
156 55 }
157 56 }