Jake Vanderwerf
2026-03-08 c19264ac916707096fe294d996a1b7fb85206b34
inc/rest/Rest.php
@@ -2,6 +2,7 @@
namespace JVBase\rest;
use JVBase\managers\Cache;
use JVBase\registrar\Registrar;
use JVBase\utility\Features;
use WP_REST_Request;
use WP_REST_Response;
@@ -207,7 +208,7 @@
      // Keep existing author filtering logic
      $authorQuery = [];
      foreach (jvbAuthorUsers() as $type) {
      foreach (Registrar::getFeatured('can_create', 'user') as $type) {
         if (array_key_exists($type, $data)) {
            $artist_ids = array_map(
               'absint',
@@ -240,7 +241,7 @@
      //Handle random
      if (array_key_exists('orderby', $data) && $data['orderby'] === 'random') {
         $current_seed = jvbGetRandomSeed();
         $current_seed = floor(time() / 1800);
         $args['orderby'] = 'RAND(' . $current_seed . ')';
         unset($args['order']);
         return $args;
@@ -305,19 +306,19 @@
      $content = jvbNoBase($post_type);
      // Get config for this content type
      $config = Features::getConfig($content);
      if (!$config) {
      $registrar = Registrar::getInstance($content);
      if (!$registrar) {
         return null;
      }
      // Check if this orderby is a custom order
      $customOrders = $config['custom_order'] ?? [];
      $customOrders = $registrar->custom_order??[];
      if (empty($customOrders) || !isset($customOrders[$orderby])) {
         return null;
      }
      // Get field definition
      $fields = $config['fields'] ?? [];
      $fields = $registrar->getFields() ?? [];
      if (!isset($fields[$orderby])) {
         return null;
      }
@@ -456,15 +457,6 @@
   }
   /**
    * Check if content type exists
    */
   protected function checkContent(string $content, bool $returnBool = false): string|bool
   {
      $result = JVB_CONTENT[$content] ?? JVB_TAXONOMY[$content] ?? JVB_USER[$content] ?? '';
      return $returnBool ? ($result !== '') : $result;
   }
   /**
    * Check if user exists (cached)
    */
   protected function checkUser(int $userId): bool
@@ -526,12 +518,8 @@
   protected function isTimeline($args, $data):bool
   {
      $post_types = is_array($args['post_type']) ? $args['post_type'] : [$args['post_type']];
      foreach ($post_types as $type) {
         if (Features::forContent($type)->has('is_timeline')) {
            return true;
         }
      }
      return false;
      $hasTimeline = array_map(function($item) { return jvbCheckBase($item); },Registrar::getFeatured('is_timeline', 'post'));
      return !empty(array_intersect($post_types, $hasTimeline));
   }
   // =========================================================================
   // SECURITY