<?php
|
namespace JVBase\integrations;
|
|
use JVBase\base\Site;
|
if (!defined('ABSPATH')) {
|
exit;
|
}
|
trait ServiceMap {
|
protected array $serviceMap = [
|
'maps' => 'JVBase\integrations\services\GoogleMaps',
|
'square' => 'JVBase\integrations\services\Square',
|
'facebook' => 'JVBase\integrations\services\Facebook',
|
'helcim' => 'JVBase\integrations\services\Helcim',
|
'instagram' => 'JVBase\integrations\services\Instagram',
|
'bluesky' => 'JVBase\integrations\services\BlueSky',
|
'gmb' => 'JVBase\integrations\services\GoogleMyBusiness',
|
'cloudflare' => 'JVBase\integrations\services\Cloudflare',
|
'umami' => 'JVBase\integrations\services\Umami',
|
'postmark' => 'JVBase\integrations\services\PostMark',
|
];
|
|
public function getService(string $service):Integrations|false
|
{
|
return array_key_exists($service, $this->serviceMap) ?
|
$this->serviceMap[$service]::getInstance()
|
: false;
|
}
|
|
public function getAvailableServices():array
|
{
|
return array_filter(array_keys($this->serviceMap), function ($service) {
|
return Site::hasIntegration($service);
|
}, ARRAY_FILTER_USE_KEY);
|
}
|
}
|