From fff721dd185f5b97f7ae7a6e64189e55887ff590 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 05 Jul 2026 18:36:57 +0000
Subject: [PATCH] =Cleaning up the Square integration (still a bit more to do yet). Also majorly overhauled /rest/ files to ignore a rest request 'user' paramater, and rely on get_current_user_id() instead.

---
 inc/integrations/GoogleMyBusiness.php |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/inc/integrations/GoogleMyBusiness.php b/inc/integrations/GoogleMyBusiness.php
index c86d3ab..b802142 100644
--- a/inc/integrations/GoogleMyBusiness.php
+++ b/inc/integrations/GoogleMyBusiness.php
@@ -9,6 +9,11 @@
 
 class GoogleMyBusiness extends Integrations
 {
+	protected array $allowedContent = [
+		'menu_item',
+		'post',
+		'event',
+	];
 	private ?string $access_token = null;
 	protected string $readMask = 'name,title,storefrontAddress,metadata,openInfo,storeCode,categories,phoneNumbers,labels,specialHours';
 	private ?string $location = null;
@@ -17,7 +22,17 @@
 	private ?string $client_secret = null;
 	private ?string $account_id = null;
 
-	public function __construct(?int $userID = null)
+	protected static array $instances = [];
+	public static function getInstance(?int $userID = null):self
+	{
+		$key = is_null($userID) ? 'base' : $userID;
+		if (!array_key_exists($key, self::$instances)) {
+			self::$instances[$key] = new self($userID);
+		}
+		return self::$instances[$key];
+	}
+
+	protected function __construct(?int $userID = null)
 	{
 		$this->service_name = 'gmb';
 		$this->title = 'Google My Business';
@@ -319,8 +334,6 @@
 		} else {
 			$result = $this->createPost($data);
 			$meta->set("_{$this->service_name}_item_id", $result['name']);
-
-			$meta->save();
 		}
 
 		return [
@@ -374,7 +387,6 @@
 		} else {
 			$result = $this->createPost($data);
 			$meta->set("_{$this->service_name}_item_id", $result['name']);
-			$meta->save();
 		}
 
 		return [
@@ -426,7 +438,6 @@
 		} else {
 			$result = $this->createPost($data);
 			$meta->set("_{$this->service_name}_item_id", $result['name']);
-			$meta->save();
 		}
 
 		return [

--
Gitblit v1.10.0