settingsService = $settingsService; } /** * Get all settings organized by category * * @param WP_REST_Request $data * * @return WP_REST_Response * * @throws ForbiddenException */ public function handle(WP_REST_Request $data): WP_REST_Response { // Verify the nonce Sanitizer::verifyNonce($data->get_header('X-WP-Nonce')); // Get all settings from the service $allSettings = $this->settingsService->getAllSettings(); // Organize settings structure for frontend (prepare for future extensions) $organizedSettings = [ 'security' => [ 'recaptcha' => $allSettings['security']['recaptcha'] ?? null, // Future extensions can be added here: // 'hcaptcha' => $allSettings['security']['hcaptcha'] ?? null, // 'turnstile' => $allSettings['security']['turnstile'] ?? null, // Example: If you wanted to include security status info, you could inject SecurityService: // 'status' => [ // 'activeCaptchaProvider' => $this->securityService->getActiveCaptchaProvider(), // 'isCaptchaConfigured' => $this->securityService->isCaptchaConfigured(), // ] ], 'general' => [ 'wcagBackend' => $allSettings['general']['wcagBackend'] ?? false, // Future general settings can be added here: // 'site_settings' => $allSettings['general']['site_settings'] ?? null, // 'form_defaults' => $allSettings['general']['form_defaults'] ?? null, ], // Future categories can be added here ]; return new WP_REST_Response([ 'message' => BackendStrings::getSettingsStrings()['all_settings_retrieved'], 'data' => $organizedSettings ], 200); } }