Jake Vanderwerf
2026-08-28 a9654f00c8fbc9934289d761843ddd071025013f
inc/rest/routes/AdminRoutes.php
@@ -2,14 +2,10 @@
namespace JVBase\rest\routes;
use JVBase\Instance;
use JVBase\JVB;
use JVBase\managers\Cache;
use JVBase\managers\IconsManager;
use JVBase\rest\Rest;
use JVBase\rest\Route;
use JVBase\rest\PermissionHandler;
use WP_Query;
use WP_Error;
use WP_REST_Request;
use WP_REST_Response;
@@ -72,14 +68,14 @@
   /**
    * Handle cache-related actions
    */
   public function handleCacheAction(\WP_REST_Request $request): \WP_REST_Response
   public function handleCacheAction(WP_REST_Request $request): WP_REST_Response
   {
      $action = sanitize_text_field($request->get_param('action'));
      switch ($action) {
         case 'flush-all':
            $total = Cache::flushAll();
            return new \WP_REST_Response([
            return new WP_REST_Response([
               'success' => true,
               'message' => $total.' caches flushed successfully'
            ]);
@@ -87,7 +83,7 @@
         case 'flush-cache':
            $group = sanitize_text_field($request->get_param('group'));
            if (empty($group)) {
               return new \WP_REST_Response([
               return new WP_REST_Response([
                  'success' => false,
                  'message' => 'No cache group specified'
               ], 400);
@@ -95,13 +91,13 @@
            Cache::for($group)?->flush();
            return new \WP_REST_Response([
            return new WP_REST_Response([
               'success' => true,
               'message' => "Cache group '{$group}' flushed successfully"
            ]);
         default:
            return new \WP_REST_Response([
            return new WP_REST_Response([
               'success' => false,
               'message' => 'Invalid action'
            ], 400);
@@ -111,7 +107,7 @@
   /**
    * Handle icon-related actions
    */
   public function handleIconAction(\WP_REST_Request $request): \WP_REST_Response
   public function handleIconAction(WP_REST_Request $request): WP_REST_Response
   {
      $action = sanitize_text_field($request->get_param('action'));
      $source = sanitize_text_field($request->get_param('source') ?? 'icons');
@@ -123,7 +119,7 @@
            $icons->forceRefresh();
            IconsManager::regenerateAllCSS([$source => true]);
            return new \WP_REST_Response([
            return new WP_REST_Response([
               'success' => true,
               'message' => "Icon CSS regenerated successfully for '{$source}'"
            ]);
@@ -135,7 +131,7 @@
            }
            IconsManager::regenerateAllCSS();
            return new \WP_REST_Response([
            return new WP_REST_Response([
               'success' => true,
               'message' => 'All icon CSS files regenerated successfully'
            ]);
@@ -143,20 +139,20 @@
         case 'restore-icon-version':
            $timestamp = (int)$request->get_param('timestamp');
            if (empty($timestamp)) {
               return new \WP_REST_Response([
               return new WP_REST_Response([
                  'success' => false,
                  'message' => 'No timestamp provided'
               ], 400);
            }
            if ($icons->restoreVersion($timestamp)) {
               return new \WP_REST_Response([
               return new WP_REST_Response([
                  'success' => true,
                  'message' => 'Icon version restored successfully'
               ]);
            }
            return new \WP_REST_Response([
            return new WP_REST_Response([
               'success' => false,
               'message' => 'Failed to restore icon version'
            ], 500);
@@ -165,7 +161,7 @@
            $timestamps = $request->get_param('timestamps');
            if (empty($timestamps) || !is_array($timestamps)) {
               return new \WP_REST_Response([
               return new WP_REST_Response([
                  'success' => false,
                  'message' => 'No versions selected for merging'
               ], 400);
@@ -174,7 +170,7 @@
            $timestamps = array_map('intval', $timestamps);
            if (count($timestamps) < 2) {
               return new \WP_REST_Response([
               return new WP_REST_Response([
                  'success' => false,
                  'message' => 'Please select at least 2 versions to merge'
               ], 400);
@@ -184,19 +180,19 @@
               // Regenerate CSS after merge
               IconsManager::regenerateAllCSS([$source => true]);
               return new \WP_REST_Response([
               return new WP_REST_Response([
                  'success' => true,
                  'message' => 'Icon versions merged successfully'
               ]);
            }
            return new \WP_REST_Response([
            return new WP_REST_Response([
               'success' => false,
               'message' => 'Failed to merge icon versions'
            ], 500);
         default:
            return new \WP_REST_Response([
            return new WP_REST_Response([
               'success' => false,
               'message' => 'Invalid action'
            ], 400);