From f0645f805ecdd19cf5ed9842f9e6b69a86dbcdeb Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 27 Aug 2026 15:28:09 +0000
Subject: [PATCH] =Notifications and routes minor cleanup. needs more work

---
 inc/rest/Rest.php |   36 +++++++++++++++++++++++++-----------
 1 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/inc/rest/Rest.php b/inc/rest/Rest.php
index 89f0343..9cc7e14 100644
--- a/inc/rest/Rest.php
+++ b/inc/rest/Rest.php
@@ -1,10 +1,14 @@
 <?php
 namespace JVBase\rest;
 
+use JVBase\Instance;
+use JVBase\integrations\services\Cloudflare;
 use JVBase\managers\Cache;
+use JVBase\managers\Errors;
 use JVBase\meta\Meta;
 use JVBase\registrar\Registrar;
 use JVBase\base\Site;
+use JVBase\rest\routes\TermRoutes;
 use WP_REST_Request;
 use WP_REST_Response;
 use Exception;
@@ -30,7 +34,7 @@
 	protected string $namespace = 'jvb/v1';
 	protected ?Cache $cache = null;
 	protected string $cacheName = '';
-	protected int $cacheTtl = 3600;
+	protected int $cacheTtl = HOUR_IN_SECONDS;
 	protected static ?string $action;
 
 	public function __construct()
@@ -180,7 +184,7 @@
 	/**
 	 * Convert MySQL datetime to ISO 8601 timestamp
 	 */
-	protected function formatTimestamp(?string $mysqlDatetime): ?string
+	public function formatTimestamp(?string $mysqlDatetime): ?string
 	{
 		return Response::formatTimestamp($mysqlDatetime);
 	}
@@ -483,10 +487,20 @@
 	 */
 	protected function checkUser(int $userId): bool
 	{
-		$cache = Cache::for('checkUser', DAY_IN_SECONDS)->connect('user');
+		$cache = Cache::for('checkUser', 'user',DAY_IN_SECONDS);
 		return $cache->remember($userId, fn() => (bool) get_userdata($userId));
 	}
 
+	protected function checkArray(string $value, array $search, bool $lowercase = true):string|false
+	{
+		if ($lowercase) {
+			$value = strtolower($value);
+		}
+
+		return in_array($value, $search) ? $value : false;
+
+	}
+
 	/**
 	 * Check if term exists (cached)
 	 */
@@ -499,7 +513,7 @@
 			return false;
 		}
 
-		$cache = Cache::for('checkTerm', DAY_IN_SECONDS)->connect('taxonomy');
+		$cache = Cache::for('checkTerm', 'term', DAY_IN_SECONDS);
 		return $cache->remember($termId, fn() => (bool) term_exists($termId, jvbCheckBase($taxonomy)));
 	}
 
@@ -508,7 +522,7 @@
 	 */
 	protected function isVerifiedUser(int $userId): bool
 	{
-		$cache = Cache::for('verifiedUsers', DAY_IN_SECONDS)->connect('user');
+		$cache = Cache::for('verifiedUsers', 'user',DAY_IN_SECONDS);
 		return $cache->remember($userId, fn() => user_can($userId, 'skip_moderation'));
 	}
 
@@ -555,11 +569,11 @@
 	 */
 	protected function verifyTurnstile(string $token): bool
 	{
-		if (!Site::hasIntegration('cloudflare') || !JVB()->connect('cloudflare')->isSetUp()) {
+		if (!Site::hasIntegration('cloudflare') || !Cloudflare::getInstance()->isSetUp()) {
 			return true;
 		}
 
-		return !empty($token) && JVB()->connect('cloudflare')->verifyTurnstile($token);
+		return !empty($token) && Cloudflare::getInstance()->verifyTurnstile($token);
 	}
 
 	/**
@@ -632,7 +646,7 @@
 		]);
 
 		try {
-			JVB()->error()->log('security_audit', $event, $context, 'info');
+			Errors::getInstance()->log('security_audit', $event, $context, 'info');
 		} catch (Exception $e) {
 			error_log("Security Audit: {$event} - " . json_encode($context));
 		}
@@ -644,7 +658,7 @@
 	protected function logError(string $message, array $context = [], string $severity = 'error'): void
 	{
 		try {
-			JVB()->error()->log(static::class, $message, $context, $severity);
+			Errors::getInstance()->log(static::class, $message, $context, $severity);
 		} catch (Exception $e) {
 			error_log(static::class . " Error: {$message} - " . json_encode($context));
 		}
@@ -878,7 +892,7 @@
 			return $terms;
 		}
 		$ids = array_map('absint', explode(',',$value));
-		$cache = Cache::for('term_data')->connect('taxonomy');
+		$cache = Cache::for('term_data','term');
 		$cache->flush();
 		if (!array_key_exists($taxonomy, $terms)) {
 			$terms[$taxonomy] = [];
@@ -896,7 +910,7 @@
 							'name'	=> $term->name,
 							'slug'	=> $term->slug,
 							'parent'	=> $term->parent,
-							'path'	=> JVB()->routes('term')->getTermPath($term->term_id, $term->name, $taxonomy),
+							'path'	=> TermRoutes::getInstance()->getTermPath($term->term_id, $term->name, $taxonomy),
 							'taxonomy'	=> jvbNoBase($term->taxonomy),
 							'count'	=> $term->count,
 						];

--
Gitblit v1.10.0