public function updateContact(Contact $contact) { $isdk = $this->getIsdk(); try { $remote = $this->loadContact($contact->getId()); if (is_string($remote)) { $contact->setErrorMessage($remote); $contact->setIsFailed(); } else { if ($remote->uniqueHash() == $contact->uniqueHash()) { $contact->setIsSkipped(); } else { $response = $isdk->updateCon($contact->getId(), $contact->getData()); if (is_string($response)) { $messsage = 'Add failed. Error:' . $response; $contact->setErrorMessage($messsage); $contact->setIsFailed(); } else { $contact->setId($response); $contact->setIsUpdated(); $remoteTags = $remote->getTags(); $tags = $contact->getTags(); $diff = array_diff($tags, $remoteTags); foreach ($diff as $d) { $response1 = $isdk->grpAssign($contact->getId(), $d); if (is_string($response1)) { $messsage1 = 'Add Tag failed. Error:' . $response1; $isdk->updateCon($contact->getId(), $remote->getData()); $contact->setErrorMessage($messsage1); $contact->setIsFailed(); break; } } $diffRemote = array_diff($remoteTags, $tags); foreach ($diffRemote as $dr) { $response2 = $isdk->grpRemove($contact->getId(), $dr); if (is_string($response2)) { $messsage1 = 'Delete Tag failed. Error:' . $response2; $isdk->updateCon($contact->getId(), $remote->getData()); $contact->setErrorMessage($messsage2); $contact->setIsFailed(); break; } } } } } } catch (Exception $e) { $contact->setErrorMessage($e->getMessage()); $contact->setIsFailed(); } return $contact; }
/** * Name fields differ from text fields only in that (supposedly) they * automatically capitalize the first letter of every word */ public function testSetGetDataNames() { $data = array('FirstName' => 'test', 'LastName' => 'test e'); $dataExpected = array('FirstName' => 'Test', 'LastName' => 'Test e', 'OwnerID' => 0); $contact = new Contact(); $contact->setData($data); $this->assertEquals($dataExpected, $contact->getData()); }