From e6672fe38ce5d99f3b3f026154f777aded7361de Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 29 Jan 2026 17:36:53 +0000
Subject: [PATCH] =Starting refactor of Meta and Routes to fluent-style

---
 inc/rest/routes/UploadRoutes.php |   64 ++++++++++++--------------------
 1 files changed, 24 insertions(+), 40 deletions(-)

diff --git a/inc/rest/routes/UploadRoutes.php b/inc/rest/routes/UploadRoutes.php
index eb3c211..c0016bf 100644
--- a/inc/rest/routes/UploadRoutes.php
+++ b/inc/rest/routes/UploadRoutes.php
@@ -57,7 +57,7 @@
 		));
 
 		// Metadata updates
-		$registry->register('update_metadata', new TypeConfig(
+		$registry->register('update_image_meta', new TypeConfig(
 			executor: $executor
 		));
 
@@ -783,14 +783,8 @@
 		try {
 			$data = $request->get_params();
 
-			// Validate user permissions
-			if (!$this->userCheck($data['user'])) {
-				return $this->sendResponse(
-					false,
-					['error_code' => 'invalid_user'],
-					'Invalid user specified'
-				);
-			}
+			error_log('Received data for meta change: '.print_r($data, true));
+
 
 			$items = $data['items']??false;
 			if (!$items) {
@@ -803,23 +797,15 @@
 			}
 			$pending = [];
 			$attachments = array_filter($items, function ($item) {
-				return is_numeric($item);
-			}, ARRAY_FILTER_USE_KEY);
-			if (count($attachments) !== count($items)) {
-				$pending = array_filter($items, function ($item) {
-					return !is_numeric($item);
-				}, ARRAY_FILTER_USE_KEY);
-			}
+				return array_key_exists('attachmentId', $item) || array_key_exists('uploadId', $item);
+			});
 
 
 			if (!empty($attachments)) {
-				// Phase 2B: Direct attachment update (images already processed)
-				return $this->updateMeta($attachments, $data['user']);
+				error_log('Attachments: '.print_r($attachments, true));
+				return $this->queueMetaUpdate($attachments, $data['user']);
 			}
-			elseif (!empty($pending)) {
-				// Phase 2A: Queue metadata update with dependency on upload operation
-				return $this->queueMetaUpdate($pending, $data['user']);
-			}
+
 
 			return $this->sendResponse(
 				false,
@@ -851,9 +837,13 @@
 	{
 		$updated_count = 0;
 		$errors = [];
-
-		foreach ($data as $attachment_id => $info) {
+		$ids = [];
+		foreach ($data as $info) {
 			try {
+				$attachment_id = $info['attachmentId'];
+				error_log('Updating attachment ID:'.print_r($attachment_id,true));
+				$ids[] = $attachment_id;
+				unset($info['attachmentId']);
 				// Verify attachment exists and user has permission
 				if (!$this->verifyAttachmentAccess($attachment_id, $user)) {
 					$errors[] = "No permission to edit attachment {$attachment_id}";
@@ -873,7 +863,7 @@
 			[
 				'updated_count' => $updated_count,
 				'errors' => $errors,
-				'attachment_ids' => $data['attachment_ids']
+				'attachment_ids' => $ids
 			],
 			$updated_count > 0 ?
 				"Updated metadata for {$updated_count} attachment(s)" :
@@ -890,22 +880,16 @@
 		$errors = [];
 		$original = count($data);
 		foreach ($data as $uploadID => $info) {
-			if (!array_key_exists('depends_on', $info)) {
-				unset($data[$uploadID]);
-				$errors[$uploadID] = $info;
-				continue;
-			}
-			if (!in_array($info['depends_on'], $depends_on)) {
+			if (array_key_exists('depends_on', $info) && !in_array($info['depends_on'], $depends_on)) {
 				$depends_on[] = $info['depends_on'];
 			}
 		}
 		$operationID = $queue->queueOperation(
-			'update_metadata',
+			'update_image_meta',
 			$user,
 			$data,
 			[
 				'depends_on' => $depends_on,
-				'priority' => 'medium',
 			]
 		);
 
@@ -932,7 +916,7 @@
 			$errors = [];
 			foreach ($operation->depends_on as $dependency) {
 				$operationData = JVB()->queue()->getOperation($dependency);
-				if (!$operationData || $operationData->status !== 'completed') {
+				if (!$operationData || $operationData->state !== 'completed') {
 					throw new Exception('Original upload operation not found or not completed');
 				}
 
@@ -993,18 +977,18 @@
 	protected function applyMeta(int $attachment_id, array $metadata): void
 	{
 		// Update alt text
-		if (!empty($metadata['alt'])) {
-			update_post_meta($attachment_id, '_wp_attachment_image_alt', sanitize_text_field($metadata['alt']));
+		if (!empty($metadata['image-alt-text'])) {
+			update_post_meta($attachment_id, '_wp_attachment_image_alt', sanitize_text_field($metadata['image-alt-text']));
 		}
 		$postUpdates = [];
 		// Update title
-		if (!empty($metadata['title'])) {
-			$postUpdates['post_title'] = $metadata['title'];
+		if (!empty($metadata['image-title'])) {
+			$postUpdates['post_title'] = $metadata['image-title'];
 		}
 
 		// Update caption
-		if (!empty($metadata['caption'])) {
-			$postUpdates['post_excerpt'] = sanitize_textarea_field($metadata['caption']);
+		if (!empty($metadata['image-caption'])) {
+			$postUpdates['post_excerpt'] = sanitize_textarea_field($metadata['image-caption']);
 		}
 
 		if (!empty($postUpdates)) {

--
Gitblit v1.10.0