/** * Gets search results, that includes found items and any additional information. * * @param string $query * @param int $page * @param int $perPage * @param bool $searchById * @return array * @TODO: Refactor */ public function search($query, $page, $perPage, $searchById = false) { $items = array(); if ($searchById) { $idParts = explode(User::DELIMITER, $query); if (count($idParts) === 2) { $query = $idParts[1]; if ($idParts[0] == User::TYPE_DIAMANTE) { $isDiamanteUserSearch = true; } } } if ($searchById && isset($isDiamanteUserSearch)) { $diamanteUsers = [$this->diamanteUserRepository->get($query)]; } else { $diamanteUsers = $this->diamanteUserRepository->searchByInput($query, $this->properties); } if (!isset($isDiamanteUserSearch)) { $oroUsers = $this->oroUserSearchHandler->search($query, $page, $perPage, $searchById); } if (!empty($diamanteUsers)) { $convertedDiamanteUsers = $this->convertUsers($diamanteUsers, User::TYPE_DIAMANTE); $items = array_merge($items, $convertedDiamanteUsers); } if (!empty($oroUsers['results'])) { $convertedOroUsers = $this->convertUsers($oroUsers['results'], User::TYPE_ORO); $items = array_merge($items, $convertedOroUsers); } return array('results' => $items, 'more' => false); }
/** * @param $id */ public function removeDiamanteUser($id) { /** @var DiamanteUser $user */ $user = $this->diamanteUserRepository->get($id); $user->setDeleted(true); $user->getApiUser()->deactivate(); $this->diamanteApiUserRepository->store($user->getApiUser()); $this->diamanteUserRepository->store($user); }
/** * @param $id */ public function removeDiamanteUser($id) { /** @var DiamanteUser $user */ $user = $this->diamanteUserRepository->get($id); $user->setDeleted(true); if ($user->getApiUser()) { $user->getApiUser()->deactivate(); $this->diamanteApiUserRepository->store($user->getApiUser()); } $this->diamanteUserRepository->store($user); $this->watcherListRepository->removeByUser(new User($user->getId(), User::TYPE_DIAMANTE)); }
/** * @param Notification $notification * @param Ticket $ticket * * @return string */ private function getFormattedUserName(Notification $notification, Ticket $ticket) { $author = $notification->getAuthor(); if (is_null($author)) { $reporterId = $ticket->getReporter()->getId(); $user = $this->diamanteUserRepository->get($reporterId); } else { $user = $this->getUserDependingOnType($author); } $name = $this->nameFormatter->format($user); if (empty($name)) { $format = $this->nameFormatter->getNameFormat(); $name = str_replace(array('%first_name%', '%last_name%', '%prefix%', '%middle_name%', '%suffix%'), array($user->getFirstName(), $user->getLastName(), '', '', ''), $format); } $name = preg_replace('/\\s+/', ' ', $name); return trim($name); }