From de317675a8069b747cb253ba3e2b5dc394ca36ef Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sat, 18 Jul 2026 21:44:51 +0000
Subject: [PATCH] =Base Integrations mainly done - doing a test with setting up the Square integration to follow
---
inc/managers/queue/executors/IntegrationExecutor.php | 25 +++++++++----------------
1 files changed, 9 insertions(+), 16 deletions(-)
diff --git a/inc/managers/queue/executors/IntegrationExecutor.php b/inc/managers/queue/executors/IntegrationExecutor.php
index ea79960..428dc88 100644
--- a/inc/managers/queue/executors/IntegrationExecutor.php
+++ b/inc/managers/queue/executors/IntegrationExecutor.php
@@ -86,9 +86,6 @@
*/
private function parseOperationType(string $type): array
{
- // Remove BASE prefix if present (e.g. 'jvb_helcim_sync_to' → 'helcim_sync_to')
- $type = str_replace(BASE, '', $type);
-
$pos = strpos($type, '_');
if ($pos === false) {
throw new Exception("Invalid integration operation type: {$type}");
@@ -103,21 +100,12 @@
/**
* Resolve integration instance, optionally for a specific user
*/
- private function resolveIntegration(string $serviceName, int $userId): ?object
+ private function resolveIntegration(string $serviceName, ?int $userId = null): ?object
{
- if (!isset($this->integrationCache[$serviceName])) {
- $this->integrationCache[$serviceName] = JVB()->connect($serviceName);
+ if ($userId === 0) {
+ $userId = null;
}
-
- $integration = $this->integrationCache[$serviceName];
-
- // If operation has a user context, re-instantiate for that user
- if ($integration && $userId) {
- $class = get_class($integration);
- return new $class($userId);
- }
-
- return $integration;
+ return JVB()->connect($serviceName, $userId);
}
/*****************************************************************
@@ -137,6 +125,11 @@
return new Result(outcome: 'success', result: ['synced' => [], 'message' => 'No items to sync']);
}
+ if ($integration->hasBatchUpdate()) {
+ $result = $integration->updateBatchToService($data['items']);
+ return new Result(outcome: $result['outcome'], result: $result['result']);
+ }
+
foreach ($items as $postID) {
try {
$result = $integration->syncPostToService((int)$postID);
--
Gitblit v1.10.0