Exemple #1
0
 /**
  * Extacts the auth keys from response and saves entity
  *
  * @param $data
  * @param $tokenOverride
  *
  * @return bool|string false if no error; otherwise the error string
  */
 public function extractAuthKeys($data, $tokenOverride = null)
 {
     //check to see if an entity exists
     $entity = $this->getIntegrationSettings();
     if ($entity == null) {
         $entity = new Integration();
         $entity->setName($this->getName());
     }
     // Prepare the keys for extraction such as renaming, setting expiry, etc
     $data = $this->prepareResponseForExtraction($data);
     //parse the response
     $authTokenKey = $tokenOverride ? $tokenOverride : $this->getAuthTokenKey();
     if (is_array($data) && isset($data[$authTokenKey])) {
         $keys = $this->mergeApiKeys($data, null, true);
         $encrypted = $this->encryptApiKeys($keys);
         $entity->setApiKeys($encrypted);
         $this->factory->getSession()->set($this->getName() . '_tokenResponse', $data);
         $error = false;
     } elseif (is_array($data) && isset($data['access_token'])) {
         $this->factory->getSession()->set($this->getName() . '_tokenResponse', $data);
         $error = false;
     } else {
         $error = $this->getErrorsFromResponse($data);
         if (empty($error)) {
             $error = $this->factory->getTranslator()->trans("mautic.integration.error.genericerror", array(), "flashes");
         }
     }
     //save the data
     $em = $this->factory->getEntityManager();
     $em->persist($entity);
     $em->flush();
     $this->setIntegrationSettings($entity);
     return $error;
 }
 /**
  * {@inheritDoc}
  */
 public function setApiKeys($apiKeys)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setApiKeys', array($apiKeys));
     return parent::setApiKeys($apiKeys);
 }