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/registrar/config/Integration.php | 31 ++++++++++++++++++++++++++-----
1 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/inc/registrar/config/Integration.php b/inc/registrar/config/Integration.php
index a25324d..6316e6c 100644
--- a/inc/registrar/config/Integration.php
+++ b/inc/registrar/config/Integration.php
@@ -13,7 +13,7 @@
* @var string Must match as defined in the JVBase\integrations namespace
*/
protected string $service_name;
- protected string $content_type;
+ protected ?string $content_type = null;
/**
* @var bool Whether to send to the integration on publish
*/
@@ -27,6 +27,7 @@
* @var bool whether this is a customer role, used if this is a user-based Registrar
*/
protected bool $isCustomer;
+ protected ?string $category = null;
@@ -38,18 +39,28 @@
$this->service_name = $service;
}
+
public function getService_name():string
{
return $this->service_name;
}
/**
- * @param string $content must match what integration expects
+ * @param ?string $content must match what integration expects
* @return self
*/
- public function setContentType(string $content):self
+ public function setContentType(?string $content):self
{
- $allowed = JVB()->connect($this->service_name)->getAllowedContent();
+ if (is_null($content)) {
+ return $this;
+ }
+ $connection = JVB()->connect($this->service_name);
+ if (!$connection){
+ error_log('[Integration]::setContentType Service is not setup. '.$this->service_name);
+ return $this;
+ }
+
+ $allowed = $connection->getAllowedContent();
if (!in_array($content, $allowed)) {
error_log($this->service_name.' Connection does not support this content: '.$content);
return $this;
@@ -58,11 +69,19 @@
return $this;
}
- public function getContentType():string
+ public function getContentType():?string
{
return $this->content_type;
}
+ public function setCategory(string $category):void
+ {
+ $check = Registrar::getInstance($category);
+ if ($check) {
+ $this->category = $check->getBased();
+ }
+ }
+
public function setInitial(bool $set):self
{
$this->initial = $set;
@@ -86,6 +105,8 @@
public function setCustomer(bool $set):self
{
$this->isCustomer = $set;
+// JVB()->connect($this->service_name)->addCustomerFields();
+
return $this;
}
public function isCustomer():bool
--
Gitblit v1.10.0