Jake Vanderwerf
2026-09-18 a6413da67a4579866f0fd0323ddb23a7b6b9654a
inc/rest/Rest.php
@@ -1,7 +1,7 @@
<?php
namespace JVBase\rest;
use JVBase\Instance;
use JVBase\inc\managers\ErrorHelper;
use JVBase\integrations\services\Cloudflare;
use JVBase\managers\Cache;
use JVBase\managers\Errors;
@@ -31,6 +31,7 @@
 */
abstract class Rest
{
   use ErrorHelper;
   protected string $namespace = 'jvb/v1';
   protected ?Cache $cache = null;
   protected string $cacheName = '';
@@ -487,10 +488,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)
    */
@@ -503,7 +514,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)));
   }
@@ -512,7 +523,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'));
   }
@@ -636,24 +647,12 @@
      ]);
      try {
         Errors::getInstance()->log('security_audit', $event, $context, 'info');
         $this->logError($event,'auditLog', $context);
      } catch (Exception $e) {
         error_log("Security Audit: {$event} - " . json_encode($context));
      }
   }
   /**
    * Log errors with proper context
    */
   protected function logError(string $message, array $context = [], string $severity = 'error'): void
   {
      try {
         Errors::getInstance()->log(static::class, $message, $context, $severity);
      } catch (Exception $e) {
         error_log(static::class . " Error: {$message} - " . json_encode($context));
      }
   }
   /************************************************************
   SESSION FINGERPRINT
    ************************************************************/
@@ -882,12 +881,12 @@
         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] = [];
         $registrar = Registrar::getInstance($taxonomy);
         $terms[$taxonomy]['icon'] = $registrar ? $registrar->getIcon() : jvbDefaultIcon();;
         $terms[$taxonomy]['icon'] = $registrar ? $registrar->getIcon() : jvbDefaultIcon();
      }
      foreach ($ids as $id) {
         $data = $cache->remember(