From c68aefb847b09daa0697de7684d3451e2e68ce1e Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 09 Jul 2026 23:10:23 +0000
Subject: [PATCH] =Refactor of Integrations.php to be a bit more useful with a suite of methods for create, update, delete back and forths for integrations where sharing is enabled. Also considering a single instance with a connect method to connect as the site (no user) vs connecting as an individual user - rather than recreating instances for every user.

---
 inc/managers/queue/Storage.php |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/inc/managers/queue/Storage.php b/inc/managers/queue/Storage.php
index 2a5d540..8793c6e 100644
--- a/inc/managers/queue/Storage.php
+++ b/inc/managers/queue/Storage.php
@@ -19,7 +19,7 @@
 	public function __construct()
 	{
 		$this->defineTables();
-		$this->cache = Cache::for('queue', DAY_IN_SECONDS);
+		$this->cache = Cache::for('queue', DAY_IN_SECONDS)->user();
 	}
 
 	public function hasProcessingOperations(): bool
@@ -168,10 +168,15 @@
 
 	public function insert(Operation $op): bool
 	{
-		$result = $this->table->insert([
-			'id'              => $op->id,
-			'type'            => $op->type,
-			'user_id'         => $op->userId,
+		$existing = $this->find($op->id);
+		if ($existing && in_array($existing->state, ['completed', 'processing'] )) {
+			$op->id = Queue::generateId($op->userId);
+		}
+		$result = $this->table->findOrCreate([
+				'id'		=> $op->id,
+				'type'		=> $op->type,
+				'user_id'	=> $op->userId,
+			],[
 			'request_data'    => json_encode($op->requestData),
 			'total_items'     => $op->totalItems,
 			'processed_items' => $op->processedItems,
@@ -548,7 +553,7 @@
 			$s = $stats[0] ?? null;
 			if (!$s) continue;
 
-			$this->stats->table->query("
+			$this->stats->queryResults("
             INSERT INTO {table} (date, type, total_operations, successful_operations, failed_permanent_operations, total_items_processed)
             VALUES (%s, %s, %d, %d, %d, %d)
             ON DUPLICATE KEY UPDATE

--
Gitblit v1.10.0