public function loadNamedObjects(PhabricatorObjectQuery $query, array $names) { $id_map = array(); foreach ($names as $name) { $id = (int) substr($name, 1); $id_map[$id][] = $name; } $objects = id(new PonderQuestionQuery())->setViewer($query->getViewer())->withIDs(array_keys($id_map))->execute(); $results = array(); foreach ($objects as $id => $object) { foreach (idx($id_map, $id, array()) as $name) { $results[$name] = $object; } } return $results; }
public function loadNamedObjects(PhabricatorObjectQuery $query, array $names) { $id_map = array(); foreach ($names as $name) { $id = substr($name, 1); $id_map[$id][] = $name; } $objects = id(new PhabricatorRepositoryQuery())->setViewer($query->getViewer())->withCallsigns(array_keys($id_map))->execute(); $results = array(); foreach ($objects as $object) { $callsign = $object->getCallsign(); foreach (idx($id_map, $callsign, array()) as $name) { $results[$name] = $object; } } return $results; }
public function loadNamedObjects(PhabricatorObjectQuery $query, array $names) { $id_map = array(); foreach ($names as $name) { // Maybe normalize these some day? $id = $name; $id_map[$id][] = $name; } $objects = id(new PhabricatorMailingListQuery())->setViewer($query->getViewer())->withEmails(array_keys($id_map))->execute(); $results = array(); foreach ($objects as $id => $object) { $email = $object->getEmail(); foreach (idx($id_map, $email, array()) as $name) { $results[$name] = $object; } } return $results; }
public function loadNamedObjects(PhabricatorObjectQuery $query, array $names) { $id_map = array(); foreach ($names as $name) { $id = substr($name, 1); $id = phutil_utf8_strtolower($id); $id_map[$id][] = $name; } $objects = id(new PhabricatorPeopleQuery())->setViewer($query->getViewer())->withUsernames(array_keys($id_map))->execute(); $results = array(); foreach ($objects as $id => $object) { $user_key = $object->getUsername(); $user_key = phutil_utf8_strtolower($user_key); foreach (idx($id_map, $user_key, array()) as $name) { $results[$name] = $object; } } return $results; }
public function loadNamedObjects(PhabricatorObjectQuery $query, array $names) { // If the user types "#YoloSwag", we still want to match "#yoloswag", so // we normalize, query, and then map back to the original inputs. $map = array(); foreach ($names as $key => $slug) { $map[$this->normalizeSlug(substr($slug, 1))][] = $slug; } $projects = id(new PhabricatorProjectQuery())->setViewer($query->getViewer())->withSlugs(array_keys($map))->needSlugs(true)->execute(); $result = array(); foreach ($projects as $project) { $slugs = $project->getSlugs(); $slug_strs = mpull($slugs, 'getSlug'); foreach ($slug_strs as $slug) { $slug_map = idx($map, $slug, array()); foreach ($slug_map as $original) { $result[$original] = $project; } } } return $result; }