3 final class PhabricatorBadgesQuery
4 extends PhabricatorCursorPagedPolicyAwareQuery
{
11 public function withIDs(array $ids) {
16 public function withPHIDs(array $phids) {
17 $this->phids
= $phids;
21 public function withQualities(array $qualities) {
22 $this->qualities
= $qualities;
26 public function withStatuses(array $statuses) {
27 $this->statuses
= $statuses;
31 public function withNameNgrams($ngrams) {
32 return $this->withNgramsConstraint(
33 id(new PhabricatorBadgesBadgeNameNgrams()),
37 protected function loadPage() {
38 return $this->loadStandardPage($this->newResultObject());
41 protected function getPrimaryTableAlias() {
45 public function newResultObject() {
46 return new PhabricatorBadgesBadge();
49 protected function buildWhereClauseParts(AphrontDatabaseConnection
$conn) {
50 $where = parent
::buildWhereClauseParts($conn);
52 if ($this->ids
!== null) {
59 if ($this->phids
!== null) {
62 'badges.phid IN (%Ls)',
66 if ($this->qualities
!== null) {
69 'badges.quality IN (%Ls)',
73 if ($this->statuses
!== null) {
76 'badges.status IN (%Ls)',
83 public function getQueryApplicationClass() {
84 return 'PhabricatorBadgesApplication';
87 public function getBuiltinOrders() {
90 'vector' => array('quality', 'id'),
91 'name' => pht('Rarity (Rarest First)'),
93 'shoddiness' => array(
94 'vector' => array('-quality', '-id'),
95 'name' => pht('Rarity (Most Common First)'),
97 ) + parent
::getBuiltinOrders();
100 public function getOrderableColumns() {
103 'table' => $this->getPrimaryTableAlias(),
104 'column' => 'quality',
108 ) + parent
::getOrderableColumns();
112 protected function newPagingMapFromPartialObject($object) {
114 'id' => (int)$object->getID(),
115 'quality' => $object->getQuality(),