/** * 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); }