Spaces:
No application file
No application file
| namespace Mautic\SmsBundle\Integration\Twilio; | |
| use Mautic\PluginBundle\Helper\IntegrationHelper; | |
| use Twilio\Exceptions\ConfigurationException; | |
| class Configuration | |
| { | |
| /** | |
| * @var string | |
| */ | |
| private $messagingServiceSid; | |
| /** | |
| * @var string | |
| */ | |
| private $accountSid; | |
| /** | |
| * @var string | |
| */ | |
| private $authToken; | |
| public function __construct( | |
| private IntegrationHelper $integrationHelper | |
| ) { | |
| } | |
| /** | |
| * @return string | |
| * | |
| * @throws ConfigurationException | |
| */ | |
| public function getMessagingServiceSid() | |
| { | |
| $this->setConfiguration(); | |
| return $this->messagingServiceSid; | |
| } | |
| /** | |
| * @return string | |
| * | |
| * @throws ConfigurationException | |
| */ | |
| public function getAccountSid() | |
| { | |
| $this->setConfiguration(); | |
| return $this->accountSid; | |
| } | |
| /** | |
| * @return string | |
| * | |
| * @throws ConfigurationException | |
| */ | |
| public function getAuthToken() | |
| { | |
| $this->setConfiguration(); | |
| return $this->authToken; | |
| } | |
| /** | |
| * @throws ConfigurationException | |
| */ | |
| private function setConfiguration(): void | |
| { | |
| if ($this->accountSid) { | |
| return; | |
| } | |
| $integration = $this->integrationHelper->getIntegrationObject('Twilio'); | |
| if (!$integration || !$integration->getIntegrationSettings()->getIsPublished()) { | |
| throw new ConfigurationException(); | |
| } | |
| $this->messagingServiceSid = $integration->getIntegrationSettings()->getFeatureSettings()['messaging_service_sid']; | |
| if (empty($this->messagingServiceSid)) { | |
| throw new ConfigurationException(); | |
| } | |
| $keys = $integration->getDecryptedApiKeys(); | |
| if (empty($keys['username']) || empty($keys['password'])) { | |
| throw new ConfigurationException(); | |
| } | |
| $this->accountSid = $keys['username']; | |
| $this->authToken = $keys['password']; | |
| } | |
| } | |