From fff721dd185f5b97f7ae7a6e64189e55887ff590 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 05 Jul 2026 18:36:57 +0000
Subject: [PATCH] =Cleaning up the Square integration (still a bit more to do yet). Also majorly overhauled /rest/ files to ignore a rest request 'user' paramater, and rely on get_current_user_id() instead.

---
 inc/rest/routes/OptionsRoutes.php |   68 +++++++++++++---------------------
 1 files changed, 26 insertions(+), 42 deletions(-)

diff --git a/inc/rest/routes/OptionsRoutes.php b/inc/rest/routes/OptionsRoutes.php
index af77ddb..0ba6861 100644
--- a/inc/rest/routes/OptionsRoutes.php
+++ b/inc/rest/routes/OptionsRoutes.php
@@ -1,56 +1,54 @@
 <?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\base\Options;
+use JVBase\registrar\Registrar;
+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([
+				'id'	=> 'string|required',
+			])
+			->register();
 	}
 
 	public function saveOptions(WP_REST_Request $request):WP_REST_Response
 	{
 		$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'
-			]);
+		$user = get_current_user_id();
+		if ($user && !current_user_can( 'manage_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 +58,7 @@
 			]
 		);
 
-
-		return new WP_REST_Response([
-			'success'	=> 'true',
-			'message'	=> 'Probably'
-		]);
+		return $this->queued($operationID);
 	}
 
 
@@ -87,15 +81,7 @@
 			'success'	=> []
 		];
 
-		$meta = new MetaManager(null, 'options');
-		$fields = jvbGetFields('options');
-
-		$allowedFields = array_filter($data,
-		function ($key) use ($fields) {
-			return array_key_exists($key, $fields);
-		}, ARRAY_FILTER_USE_KEY);
-		error_log('Setting fields: '.print_r($allowedFields, true));
-		$results = $meta->setAll($allowedFields);
+		Options::setAll($data['changes']);
 //		foreach ($data as $field => $value) {
 //			if (array_key_exists($field, $fields)) {
 //				$success = $meta->updateValue($field, $value);
@@ -109,11 +95,9 @@
 
 		do_action('jvbOptionsRoute', $data);
 
-		$cache = new CacheManager('options', 1800);
-		$cache::invalidateGroup('options');
 		return [
 			'success'	=> true,
-			'result'	=> $results
+			'result'	=> []
 		];
 	}
 }

--
Gitblit v1.10.0