| | |
| | | namespace JVBase\registrar\config; |
| | | |
| | | use JVBase\registrar\Registrar; |
| | | use JVBase\utility\Features; |
| | | use JVBase\base\Site; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | |
| | | * @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 |
| | | */ |
| | |
| | | |
| | | |
| | | 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 = 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; |
| | |
| | | return $this; |
| | | } |
| | | |
| | | public function getContentType():string |
| | | public function getContentType():?string |
| | | { |
| | | return $this->content_type; |
| | | } |