Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace Mautic\IntegrationsBundle\Helper; | |
use Mautic\IntegrationsBundle\Exception\IntegrationNotFoundException; | |
use Mautic\IntegrationsBundle\Integration\Interfaces\AuthenticationInterface; | |
use Mautic\PluginBundle\Entity\Integration; | |
class AuthIntegrationsHelper | |
{ | |
/** | |
* @var AuthenticationInterface[] | |
*/ | |
private array $integrations = []; | |
public function __construct( | |
private IntegrationsHelper $integrationsHelper | |
) { | |
} | |
public function addIntegration(AuthenticationInterface $integration): void | |
{ | |
$this->integrations[$integration->getName()] = $integration; | |
} | |
/** | |
* @throws IntegrationNotFoundException | |
*/ | |
public function getIntegration(string $integration): AuthenticationInterface | |
{ | |
if (!isset($this->integrations[$integration])) { | |
throw new IntegrationNotFoundException("$integration either doesn't exist or has not been tagged with mautic.authentication_integration"); | |
} | |
// Ensure the configuration is hydrated | |
$this->integrationsHelper->getIntegrationConfiguration($this->integrations[$integration]); | |
return $this->integrations[$integration]; | |
} | |
public function saveIntegrationConfiguration(Integration $integrationConfiguration): void | |
{ | |
$this->integrationsHelper->saveIntegrationConfiguration($integrationConfiguration); | |
} | |
} | |