Initial commit: Atomaste website
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
namespace Hostinger\Rest;
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
die;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class for handling Rest Api Routes
|
||||
*/
|
||||
class Routes {
|
||||
/**
|
||||
* @var Settings
|
||||
*/
|
||||
private SettingsRoutes $settings_routes;
|
||||
|
||||
/**
|
||||
* @param SettingsRoutes $settings_routes Settings route class.
|
||||
*/
|
||||
public function __construct( SettingsRoutes $settings_routes ) {
|
||||
$this->settings_routes = $settings_routes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Init rest routes
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function init(): void {
|
||||
add_action( 'rest_api_init', array( $this, 'register_routes' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function register_routes() {
|
||||
// Register Settings Rest API Routes.
|
||||
$this->register_settings_routes();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function register_settings_routes(): void {
|
||||
// Return settings.
|
||||
register_rest_route(
|
||||
HOSTINGER_PLUGIN_REST_API_BASE,
|
||||
'get-settings',
|
||||
array(
|
||||
'methods' => 'GET',
|
||||
'callback' => array( $this->settings_routes, 'get_settings' ),
|
||||
'permission_callback' => array( $this, 'permission_check' ),
|
||||
)
|
||||
);
|
||||
|
||||
// Update settings.
|
||||
register_rest_route(
|
||||
HOSTINGER_PLUGIN_REST_API_BASE,
|
||||
'update-settings',
|
||||
array(
|
||||
'methods' => 'POST',
|
||||
'callback' => array( $this->settings_routes, 'update_settings' ),
|
||||
'permission_callback' => array( $this, 'permission_check' ),
|
||||
)
|
||||
);
|
||||
|
||||
// Regenerate bypass link.
|
||||
register_rest_route(
|
||||
HOSTINGER_PLUGIN_REST_API_BASE,
|
||||
'regenerate-bypass-code',
|
||||
array(
|
||||
'methods' => 'GET',
|
||||
'callback' => array( $this->settings_routes, 'regenerate_bypass_code' ),
|
||||
'permission_callback' => array( $this, 'permission_check' ),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param WP_REST_Request $request WordPress rest request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
/** PHPCS:disable Generic.CodeAnalysis.UnusedFunctionParameter.Found */
|
||||
public function permission_check( $request ): bool {
|
||||
// Workaround if Rest Api endpoint cache is enabled.
|
||||
// We don't want to cache these requests.
|
||||
if ( has_action( 'litespeed_control_set_nocache' ) ) {
|
||||
do_action(
|
||||
'litespeed_control_set_nocache',
|
||||
'Custom Rest API endpoint, not cacheable.'
|
||||
);
|
||||
}
|
||||
|
||||
if ( empty( is_user_logged_in() ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Implement custom capabilities when needed.
|
||||
return current_user_can( 'manage_options' );
|
||||
}
|
||||
}
|
||||
/** PHPCS:enable */
|
||||
Reference in New Issue
Block a user