From 2bb9aaaf24b794b528e3894ee9f9c42ca6d7fe93 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 01 Jan 2026 21:08:58 +0000
Subject: [PATCH] =FeedRoutes: extractTaxonomies added

---
 inc/rest/RestRouteManager.php |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/inc/rest/RestRouteManager.php b/inc/rest/RestRouteManager.php
index 3d9b2a4..f017e9c 100644
--- a/inc/rest/RestRouteManager.php
+++ b/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);
 	}
 

--
Gitblit v1.10.0