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/helpers/all.php |   33 ++++++++++++++++++++++++++++++++-
 1 files changed, 32 insertions(+), 1 deletions(-)

diff --git a/inc/helpers/all.php b/inc/helpers/all.php
index 5b7f02b..63eac34 100644
--- a/inc/helpers/all.php
+++ b/inc/helpers/all.php
@@ -1,5 +1,7 @@
 <?php
 
+use JVBase\base\Site;
+
 if (!defined('ABSPATH')) {
 	exit;
 }
@@ -39,6 +41,10 @@
 //        delete_option($option);
         if (!get_option($option, false)) {
 			error_log('Calling do once: '.$option);
+			if (get_transient(BASE . $option)) {
+				return;
+			}
+			set_transient(BASE . $option, true, 120);
             $callback();
             update_option($option, true);
         }
@@ -50,10 +56,35 @@
 //    delete_option(BASE.'do_these_once');
     //Ensure we have the option starting with BASE
     $option = jvbCheckBase($option);
+//	delete_option($option);
+//	delete_option(BASE.'do_these_once');
     $options = get_option(BASE.'do_these_once', []);
 //    delete_option($option);
-    if (!array_key_exists($option, $options)) {
+    if (!array_key_exists($option, $options)) {// Prevent concurrent runs
         $options[$option] = $callback;
         update_option(BASE.'do_these_once', $options);
     }
 }
+
+
+function jvbResponse(bool $success, ?string $msg = null):array
+{
+	return [
+		'success'	=> $success,
+		'message'	=> is_null($msg) ? ($success ? 'Completed successfully' : 'Something went wrong') : $msg
+	];
+}
+
+function jvbTimelinePoints(int $ID, string $type, array $status = ['publish']):array
+{
+	$type = jvbCheckBase($type);
+	return get_children([
+		'post_parent'	=> $ID,
+		'orderby'		=> 'date',
+		'order'			=> 'ASC',
+		'posts_per_page'=> -1,
+		'post_status'	=> $status,
+		'fields'		=> 'ids',
+		'post_type'		=> $type
+	]);
+}

--
Gitblit v1.10.0