public static function removeTagToContact($params) { // I supose params = TagId $myProcManager = ProcManager::getInstance(); $currentUserId = $myProcManager->getCurrentProcess()->getLoginContext()->getEyeosUser()->getId(); $peopleController = PeopleController::getInstance(); $tag = new PeopleTag(); $tag->setId($params[0]); $tag->setName($peopleController->getTagName($params[0])); $tag->setUserId($currentUserId); $contact = $peopleController->getContact($currentUserId, $params[1]); //print_r($contact); exit; $peopleController->removeTagToContact($tag, $contact); $listsName = array(); $state = $contact->getRelation()->getState(); if ($state == 'pending') { $listsName[] = 'pending'; } $tagsPerImpression = ImpressionsManager::getInstance()->getTagsPerImpression($contact->getImpression()); foreach ($tagsPerImpression as $tagPerImpression) { $listsName[] = $peopleController->getTagName($tagPerImpression->getTagId()); } return $listsName; }
public function testRemoveTagToContact() { $source = '9'; $target = '18'; $target2 = '34'; $this->contactManager->addNewContact($source, $target); $this->contactManager->addNewContact($source, $target2); //Testing addTagToContact(); $tag = new PeopleTag(); $tag->setId(7); $tag->setName('Friends'); $contacts = $this->contactManager->getAllContacts($source); $this->contactManager->addTagToContact($tag, $contacts[0]); $tagsPerImpression = $contacts[0]->getImpression()->getTagsPerImpression(); $this->assertEquals(1, count($tagsPerImpression)); $this->assertEquals(7, $tagsPerImpression[0]->getTagId()); //Testing removeTagToContact() $this->contactManager->removeTagToContact($tag, $contacts[0]); $tagsPerImpression = $contacts[0]->getImpression()->getTagsPerImpression(); $this->assertEquals(0, count($tagsPerImpression)); }
/** * Update the Lists of a Contact whit a new one and return a list of changes * * @param string $contactId The id of the contact involved in the changes * @param array $newLists The array with the new list of the contact * * @return array $results = ( * 'add' => array, The list of the id that was added * 'delete' => array The list of the id that was removed * ) * */ private static function syncLists($contactId, $newLists) { $myProcManager = ProcManager::getInstance(); $peopleController = PeopleController::getInstance(); $currentUserId = $myProcManager->getCurrentProcess()->getLoginContext()->getEyeosUser()->getId(); $contact = $peopleController->getContact($currentUserId, $contactId); //Retrive the old list $oldLists = array(); $tagsPerImpression = ImpressionsManager::getInstance()->getTagsPerImpression($contact->getImpression()); foreach ($tagsPerImpression as $tagPerImpression) { $oldLists[] = $tagPerImpression->getTagId(); } //Check if we have to add Tags $results = array('add' => array(), 'delete' => array()); foreach ($newLists as $newTagId) { if (!in_array($newTagId, $oldLists)) { //Add the tag to the contact $tag = new PeopleTag(); $tag->setId($newTagId); $tag->setName($peopleController->getTagName($newTagId)); $tag->setUserId($currentUserId); $peopleController->addTagToContact($tag, $contact); //Update the return value $results['add'][] = (int) $newTagId; } } //Check if we have to delete Tags foreach ($oldLists as $oldTagId) { if (!in_array($oldTagId, $newLists)) { //Add the tag to the contact $tag = new PeopleTag(); $tag->setId($oldTagId); $tag->setName($peopleController->getTagName($oldTagId)); $tag->setUserId($currentUserId); $peopleController->removeTagToContact($tag, $contact); //Update the return value $results['delete'][] = (int) $oldTagId; } } return $results; }
public function getTagName($tagId) { try { $tag = new PeopleTag(); $tag->setId($tagId); $this->dao->read($tag, $tagId); return $tag->getName(); } catch (Exception $e) { throw new EyePeopleException('Unable to get tag name of tag ' . $tagId, 0, $e); } }
public function testRemoveTagToImpression() { $userId = 3; $allImpressions = array(); //Testing create Impression $allImpressions[] = $this->impressionsManager->createImpression(3, 5); $allImpressions[] = $this->impressionsManager->createImpression(3, 8); $allImpressions[] = $this->impressionsManager->createImpression(3, 9); $allImpressions[] = $this->impressionsManager->createImpression(7, 9); //Testing addTagToImpression() $newTag = new PeopleTag(); $newTag->setId(9); $newTag->setName('Family'); $newTag2 = new PeopleTag(); $newTag2->setId(17); $newTag2->setName('Friends'); $this->impressionsManager->addTagToImpression($allImpressions[0], $newTag); $this->assertEquals(1, count($allImpressions[0]->getTagsPerImpression())); $this->impressionsManager->addTagToImpression($allImpressions[0], $newTag2); $this->assertEquals(2, count($allImpressions[0]->getTagsPerImpression())); $this->impressionsManager->addTagToImpression($allImpressions[1], $newTag2); $this->assertEquals(1, count($allImpressions[1]->getTagsPerImpression())); $tagsPerImpression = $allImpressions[0]->getTagsPerImpression(); $this->assertEquals(9, $tagsPerImpression[0]->getTagId()); //Testing removeTagToImpression $this->impressionsManager->removeTagToImpression($allImpressions[0], $newTag); $this->assertEquals(1, count($allImpressions[0]->getTagsPerImpression())); $this->impressionsManager->removeTagToImpression($allImpressions[0], $newTag2); $this->assertEquals(0, count($allImpressions[0]->getTagsPerImpression())); $this->impressionsManager->removeTagToImpression($allImpressions[1], $newTag2); $this->assertEquals(0, count($allImpressions[1]->getTagsPerImpression())); }