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/ErrorRoutes.php |   63 +++++++++++++++++--------------
 1 files changed, 35 insertions(+), 28 deletions(-)

diff --git a/inc/rest/routes/ErrorRoutes.php b/inc/rest/routes/ErrorRoutes.php
index d76c79c..0a4737e 100644
--- a/inc/rest/routes/ErrorRoutes.php
+++ b/inc/rest/routes/ErrorRoutes.php
@@ -1,15 +1,16 @@
 <?php
 namespace JVBase\rest\routes;
 
-use JVBase\JVB;
-use JVBase\rest\RestRouteManager;
+use JVBase\rest\Response;
+use JVBase\rest\Rest;
+use JVBase\rest\Route;
 use WP_REST_Request;
 use WP_REST_Response;
 
 if (!defined('ABSPATH')) {
     exit; // Exit if accessed directly
 }
-class ErrorRoutes extends RestRouteManager
+class ErrorRoutes extends Rest
 {
     /**
      * Registers error routes
@@ -17,13 +18,15 @@
      */
     public function registerRoutes():void
     {
-        register_rest_route($this->namespace, '/errors/log', [
-            [
-                'methods' => 'POST',
-                'callback' => [$this, 'handleErrorLog'],
-                'permission_callback' => '__return_true', // Allow anyone to log errors
-            ]
-        ]);
+		Route::for('errors/log')
+			->post([$this, 'handleErrorLog'])
+			->args([
+				'error_type' => 'string|required|enum:network,timeout,offline,auth,rate_limit,server,client,unknown',
+				'message' => 'string|required',
+				'context' => 'string',
+			])
+			->auth('public')
+			->rateLimit(10);
     }
 
     /**
@@ -31,27 +34,31 @@
      *
      * @return WP_REST_Response
      */
-    public function handleErrorLog(WP_REST_Request$request):WP_REST_Response
-    {
-        $error_type = $request->get_param('error_type');
-        $message = $request->get_param('message');
-        $context = json_decode($request->get_param('context'), true);
+	public function handleErrorLog(WP_REST_Request $request): WP_REST_Response
+	{
+		$error_type = sanitize_text_field($request->get_param('error_type'));
+		$message = sanitize_text_field($request->get_param('message'));
+		$context = $request->get_param('context');
 
-        // Determine severity based on error type
-        $severity = $this->getSeverityFromType($error_type);
+		// Parse context JSON if provided
+		$contextData = [];
+		if (!empty($context)) {
+			$decoded = json_decode($context, true);
+			$contextData = is_array($decoded) ? $decoded : [];
+		}
 
-        JVB()->error()->log(
-            $context['component'] ?? 'client-js',
-            $message,
-            $context,
-            $severity
-        );
+		// Determine severity based on error type
+		$severity = $this->getSeverityFromType($error_type);
 
-        return new WP_REST_Response([
-            'success' => true,
-            'message' => 'Error logged'
-        ]);
-    }
+		JVB()->error()->log(
+			$contextData['component'] ?? 'client-js',
+			$message,
+			$contextData,
+			$severity
+		);
+
+		return Response::success(['message'=>'Error logged']);
+	}
 
     /**
      * @param string $type

--
Gitblit v1.10.0