PluginProbe
Redirection / 5.6.0
Redirection v5.6.0
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
redirection / api / api-route.php

api-route.php in Redirection 5.6.0, at api/api-route.php

55 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class Redirection_Api_Route {
4 /**
5 * Add DB error details to a WP_Error
6 *
7 * @param WP_Error $error Error instance.
8 * @param string|int $line Error code/identifier.
9 * @param int $code HTTP status code.
10 * @return WP_Error
11 */
12 protected function add_error_details( WP_Error $error, $line, $code = 400 ) {
13 global $wpdb;
14
15 $data = array(
16 'status' => $code,
17 'error_code' => $line,
18 );
19
20 if ( isset( $wpdb->last_error ) && $wpdb->last_error ) {
21 $data['wpdb'] = $wpdb->last_error;
22 }
23
24 $error->add_data( $data );
25 return $error;
26 }
27
28 /**
29 * Default permission callback for API routes
30 *
31 * @param WP_REST_Request $request REST request.
32 * @phpstan-param WP_REST_Request<array<string, mixed>> $request
33 * @return bool
34 */
35 public function permission_callback( WP_REST_Request $request ) {
36 return Redirection_Capabilities::has_access( Redirection_Capabilities::CAP_PLUGIN );
37 }
38
39 /**
40 * Build a REST route config
41 *
42 * @param mixed $method Allowed methods (WP_REST_Server constants).
43 * @param string $callback Method name on this class.
44 * @param callable|array{0:self,1:string}|false $permissions Permission callback or false for default.
45 * @return array<string, mixed>
46 */
47 public function get_route( $method, $callback, $permissions = false ) {
48 return [
49 'methods' => $method,
50 'callback' => [ $this, $callback ],
51 'permission_callback' => $permissions ? $permissions : [ $this, 'permission_callback' ],
52 ];
53 }
54 }
55