Jake Vanderwerf
2026-08-30 a58a2e7ca4700d3e23341fde767060a4c2c704a3
inc/registrar/config/Integration.php
@@ -1,19 +1,22 @@
<?php
namespace JVBase\registrar\config;
use JVBase\integrations\ServiceMap;
use JVBase\registrar\Registrar;
use JVBase\utility\Features;
use JVBase\base\Site;
if (!defined('ABSPATH')) {
   exit;
}
final class Integration extends Config{
   use ServiceMap;
   /**
    * @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,42 +30,62 @@
    * @var bool whether this is a customer role, used if this is a user-based Registrar
    */
   protected bool $isCustomer;
   protected ?string $category = null;
   public function __construct(string $service) {
      if (!Features::hasIntegration($service)) {
      if (!Site::hasIntegration($service)) {
         error_log('Could not link with integration, as it is not enabled: '.$service);
         return;
      }
      $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 setContent_type(string $content):self
   public function setContentType(?string $content):self
   {
      $allowed = JVB()->connect($this->service_name)->allowedContent();
      if (is_null($content)) {
         return $this;
      }
      $connection = $this->getService($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);
         //TODO
//       error_log($this->service_name.' Connection does not support this content: '.$content);
         return $this;
      }
      $this->content_type = $content;
      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 +109,7 @@
   public function setCustomer(bool $set):self
   {
      $this->isCustomer = $set;
      return $this;
   }
   public function isCustomer():bool