/** @inheritdoc */
 function updateUser(User $user, array $lists = [])
 {
     $contact = [];
     $contact['contact'] = ['email' => $user->getEmail(), 'first_name' => $user->getFirstName(), 'last_name' => $user->getLastName(), 'phone' => $user->getPhoneNumber()];
     try {
         $userId = $lists[0][0];
         $this->connector->request("PUT", "contacts/{$userId}", json_encode($contact));
     } catch (\Exception $ex) {
     }
     return null;
 }
 /** @inheritdoc */
 function updateUser(User $user, array $lists = [])
 {
     foreach ($lists as $list) {
         $userHash = $list[0];
         $listId = $list[1];
         $this->connector->request("/lists/{$listId}/members/{$userHash}", ['email_address' => $user->getEmail(), 'merge_fields' => ['FNAME' => $user->getFirstName(), 'LNAME' => $user->getLastName(), 'EMAIL' => "*****@*****.**"], 'merge_vars' => ['EMAIL' => "*****@*****.**"], 'replace_interests' => false], "PATCH");
     }
 }
 /**
  * @inheritdoc
  */
 public function subscribeUser(User $user, $listId)
 {
     $driver = $this->getDriverByListId($listId);
     $this->checkDriverConfiguration($driver);
     $newsletters = $this->em->getRepository('NecktieNewsletterBundle:Newsletter');
     $row = $newsletters->findBy(['listID' => $listId, 'user' => $user]);
     if ($row) {
         throw new NewsletterException('This user(' . $user->getId() . ') is already subscribed in list "' . $listId . '".');
     }
     try {
         $this->em->beginTransaction();
         $s = $driver->subscribe($user, $listId);
         $n = new Newsletter();
         $n->setListID($listId);
         $n->setUser($user);
         $n->setMemberID($s);
         $n->setService($driver->getName());
         $this->em->persist($n);
         $this->em->flush();
         $this->em->commit();
         return $s;
     } catch (\Exception $ex) {
         $this->em->rollback();
         $this->logger->addWarning($ex);
     }
     return null;
 }