Remove product literal strings in "pht()", part 6
[phabricator.git] / src / applications / badges / query / PhabricatorBadgesQuery.php
blobdcadf881fe4b82d31267996fcd5f5400b7f6294a
1 <?php
3 final class PhabricatorBadgesQuery
4 extends PhabricatorCursorPagedPolicyAwareQuery {
6 private $ids;
7 private $phids;
8 private $qualities;
9 private $statuses;
11 public function withIDs(array $ids) {
12 $this->ids = $ids;
13 return $this;
16 public function withPHIDs(array $phids) {
17 $this->phids = $phids;
18 return $this;
21 public function withQualities(array $qualities) {
22 $this->qualities = $qualities;
23 return $this;
26 public function withStatuses(array $statuses) {
27 $this->statuses = $statuses;
28 return $this;
31 public function withNameNgrams($ngrams) {
32 return $this->withNgramsConstraint(
33 id(new PhabricatorBadgesBadgeNameNgrams()),
34 $ngrams);
37 protected function loadPage() {
38 return $this->loadStandardPage($this->newResultObject());
41 protected function getPrimaryTableAlias() {
42 return 'badges';
45 public function newResultObject() {
46 return new PhabricatorBadgesBadge();
49 protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) {
50 $where = parent::buildWhereClauseParts($conn);
52 if ($this->ids !== null) {
53 $where[] = qsprintf(
54 $conn,
55 'badges.id IN (%Ld)',
56 $this->ids);
59 if ($this->phids !== null) {
60 $where[] = qsprintf(
61 $conn,
62 'badges.phid IN (%Ls)',
63 $this->phids);
66 if ($this->qualities !== null) {
67 $where[] = qsprintf(
68 $conn,
69 'badges.quality IN (%Ls)',
70 $this->qualities);
73 if ($this->statuses !== null) {
74 $where[] = qsprintf(
75 $conn,
76 'badges.status IN (%Ls)',
77 $this->statuses);
80 return $where;
83 public function getQueryApplicationClass() {
84 return 'PhabricatorBadgesApplication';
87 public function getBuiltinOrders() {
88 return array(
89 'quality' => array(
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() {
101 return array(
102 'quality' => array(
103 'table' => $this->getPrimaryTableAlias(),
104 'column' => 'quality',
105 'reverse' => true,
106 'type' => 'int',
108 ) + parent::getOrderableColumns();
112 protected function newPagingMapFromPartialObject($object) {
113 return array(
114 'id' => (int)$object->getID(),
115 'quality' => $object->getQuality(),