Path: blob/master/src/applications/badges/query/PhabricatorBadgesQuery.php
12256 views
<?php12final class PhabricatorBadgesQuery3extends PhabricatorCursorPagedPolicyAwareQuery {45private $ids;6private $phids;7private $qualities;8private $statuses;910public function withIDs(array $ids) {11$this->ids = $ids;12return $this;13}1415public function withPHIDs(array $phids) {16$this->phids = $phids;17return $this;18}1920public function withQualities(array $qualities) {21$this->qualities = $qualities;22return $this;23}2425public function withStatuses(array $statuses) {26$this->statuses = $statuses;27return $this;28}2930public function withNameNgrams($ngrams) {31return $this->withNgramsConstraint(32id(new PhabricatorBadgesBadgeNameNgrams()),33$ngrams);34}3536protected function getPrimaryTableAlias() {37return 'badges';38}3940public function newResultObject() {41return new PhabricatorBadgesBadge();42}4344protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) {45$where = parent::buildWhereClauseParts($conn);4647if ($this->ids !== null) {48$where[] = qsprintf(49$conn,50'badges.id IN (%Ld)',51$this->ids);52}5354if ($this->phids !== null) {55$where[] = qsprintf(56$conn,57'badges.phid IN (%Ls)',58$this->phids);59}6061if ($this->qualities !== null) {62$where[] = qsprintf(63$conn,64'badges.quality IN (%Ls)',65$this->qualities);66}6768if ($this->statuses !== null) {69$where[] = qsprintf(70$conn,71'badges.status IN (%Ls)',72$this->statuses);73}7475return $where;76}7778public function getQueryApplicationClass() {79return 'PhabricatorBadgesApplication';80}8182public function getBuiltinOrders() {83return array(84'quality' => array(85'vector' => array('quality', 'id'),86'name' => pht('Rarity (Rarest First)'),87),88'shoddiness' => array(89'vector' => array('-quality', '-id'),90'name' => pht('Rarity (Most Common First)'),91),92) + parent::getBuiltinOrders();93}9495public function getOrderableColumns() {96return array(97'quality' => array(98'table' => $this->getPrimaryTableAlias(),99'column' => 'quality',100'reverse' => true,101'type' => 'int',102),103) + parent::getOrderableColumns();104}105106107protected function newPagingMapFromPartialObject($object) {108return array(109'id' => (int)$object->getID(),110'quality' => $object->getQuality(),111);112}113114}115116117