service = $service; } /** * Registers the routes for the endpoints. * * @return void */ public function register() { $route_args = [ 'methods' => 'GET', 'args' => [ 'url' => [ 'required' => true, 'type' => 'string', 'description' => 'The url to retrieve', ], ], 'callback' => [ $this->service, 'get', ], 'permission_callback' => [ $this, 'can_retrieve_data', ], ]; register_rest_route( self::REST_NAMESPACE, self::ENDPOINT_SINGULAR, $route_args ); } /** * Determines whether or not data can be retrieved for the registered endpoints. * * @return bool Whether or not data can be retrieved. */ public function can_retrieve_data() { return current_user_can( self::CAPABILITY_RETRIEVE ); } }