• File: base-route.php
  • Full Path: /home/bravrvjk/hpgt.org/wp-content/plugins/elementor/app/modules/import-export-customization/data/routes/base-route.php
  • Date Modified: 10/21/2025 4:51 PM
  • File size: 848 bytes
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace Elementor\App\Modules\ImportExportCustomization\Data\Routes;

abstract class Base_Route {
	public function __construct() {}

	public function register_route( $name_space, $base_route ): void {
		register_rest_route( $name_space, '/' . $base_route . '/' . $this->get_route(), [
			[
				'methods' => $this->get_method(),
				'callback' => fn( $request ) => $this->callback( $request ),
				'permission_callback' => $this->permission_callback(),
				'args' => $this->get_args(),
			],
		] );
	}

	abstract protected function get_route(): string;

	abstract protected function get_method(): string;

	abstract protected function callback( $request ): \WP_REST_Response;

	protected function permission_callback(): callable {
		return fn() => current_user_can( 'manage_options' );
	}

	abstract protected function get_args(): array;
}