Jake Vanderwerf
2026-01-04 d38d825e3484d822ea3c1f0fb1df37ecf386b18a
inc/rest/RestRouteManager.php
@@ -1,6 +1,8 @@
<?php
namespace JVBase\rest;
use DateTime;
use DateTimeZone;
use JVBase\JVB;
use JVBase\rest\RateLimiter;
use JVBase\managers\OperationQueue;
@@ -128,6 +130,32 @@
      return true;
   }
   /**
    * Convert MySQL datetime to ISO 8601 timestamp with proper timezone
    */
   public function formatTimestamp(?string $mysql_datetime): ?string
   {
      if (empty($mysql_datetime)) {
         return null;
      }
      try {
         // Get WordPress timezone - dates are stored in this timezone
         $wp_timezone = wp_timezone();
         // Parse the datetime in WordPress timezone
         $date = new DateTime($mysql_datetime, $wp_timezone);
         // Convert to UTC for API consistency
         $date->setTimezone(new DateTimeZone('UTC'));
         // Return ISO 8601 format
         return $date->format('c');
      } catch (Exception $e) {
         return null;
      }
   }
   protected function checkContent(string $content, bool $bool = false):string|bool
   {
      $result = JVB_CONTENT[$content]??JVB_TAXONOMY[$content]??JVB_USER[$content]??'';
@@ -541,6 +569,7 @@
   protected function error(string $message, string $code, int $status = 400, ?string $field = null): WP_REST_Response
   {
      $data = [
         'success'   => false,
         'message' => $message,
         'code' => $code
      ];
@@ -556,6 +585,7 @@
    */
   protected function success(array $data, int $status = 200): WP_REST_Response
   {
      $data['success'] = true;
      return new WP_REST_Response($data, $status);
   }