From 2127b1bdd73ecd2423e443992da4b442f5a3c1a3 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 04 Feb 2026 21:19:25 +0000
Subject: [PATCH] =Major overhaul of MetaManager.php -> Meta.php and RestRouteManager.php -> Rest.php. Seems to work for JakeVan

---
 inc/rest/routes/OptionsRoutes.php |   52 ++++++++++++++++++++++------------------------------
 1 files changed, 22 insertions(+), 30 deletions(-)

diff --git a/inc/rest/routes/OptionsRoutes.php b/inc/rest/routes/OptionsRoutes.php
index af77ddb..2bb2c2c 100644
--- a/inc/rest/routes/OptionsRoutes.php
+++ b/inc/rest/routes/OptionsRoutes.php
@@ -1,39 +1,38 @@
 <?php
 namespace JVBase\rest\routes;
 
-use JVBase\JVB;
-use JVBase\rest\RestRouteManager;
-use JVBase\managers\CacheManager;
-use JVBase\meta\MetaManager;
-use JVBase\meta\MetaSanitizer;
+use JVBase\rest\PermissionHandler;
+use JVBase\rest\Rest;
+use JVBase\managers\Cache;
+use JVBase\meta\Meta;
+use JVBase\rest\Route;
 use WP_REST_Request;
 use WP_REST_Response;
 use WP_Error;
-use Exception;
 
 if (!defined('ABSPATH')) {
 	exit; // Exit if accessed directly
 }
 
-class OptionsRoutes extends RestRouteManager
+class OptionsRoutes extends Rest
 {
 
 	public function __construct()
 	{
 		parent::__construct();
-		$this->action = 'dash-';
 		add_filter(BASE.'handle_bulk_operation', [$this, 'processOperation'], 10, 3);
 	}
 
-	public function registerRoutes()
+	public function registerRoutes():void
 	{
-		register_rest_route($this->namespace, '/options', [
-			[
-				'methods' => 'POST',
-				'callback' => [$this, 'saveOptions'],
-				'permission_callback' => [$this, 'checkPermission']
-			]
-		]);
+		Route::for('options')
+			->post([$this, 'saveOptions'])
+			->auth(PermissionHandler::combine(['user', ['actionNonce' => 'dash-']]))
+			->rateLimit(3)
+			->args([
+				'user'	=> 'int|required',
+				'id'	=> 'string|required',
+			]);
 	}
 
 	public function saveOptions(WP_REST_Request $request):WP_REST_Response
@@ -41,16 +40,13 @@
 		$data = $request->get_params();
 		$user = $data['user'];
 		if ($user && !user_can($user, 'manage_options')) {
-			return new WP_REST_Response([
-				'success'	=> 'false',
-				'message'	=> 'User cannot modify options'
-			]);
+			return $this->error('User Cannot modify options');
 		}
 		unset($data['user']);
 		$operationID = $data['id'];
 		unset($data['id']);
-		$queue = JVB()->queue();
-		$queue->queueOperation(
+
+		JVB()->queue()->queueOperation(
 			'update_options',
 			$user,
 			$data,
@@ -60,11 +56,7 @@
 			]
 		);
 
-
-		return new WP_REST_Response([
-			'success'	=> 'true',
-			'message'	=> 'Probably'
-		]);
+		return $this->queued($operationID);
 	}
 
 
@@ -87,7 +79,7 @@
 			'success'	=> []
 		];
 
-		$meta = new MetaManager(null, 'options');
+		$meta = Meta::forOptions('options');
 		$fields = jvbGetFields('options');
 
 		$allowedFields = array_filter($data,
@@ -109,8 +101,8 @@
 
 		do_action('jvbOptionsRoute', $data);
 
-		$cache = new CacheManager('options', 1800);
-		$cache::invalidateGroup('options');
+		$cache = Cache::for('options', 1800);
+		$cache->flush();
 		return [
 			'success'	=> true,
 			'result'	=> $results

--
Gitblit v1.10.0