Changeset View
Changeset View
Standalone View
Standalone View
src/applications/auth/query/PhabricatorAuthMessageQuery.php
- This file was added.
| <?php | |||||
| final class PhabricatorAuthMessageQuery | |||||
| extends PhabricatorCursorPagedPolicyAwareQuery { | |||||
| private $ids; | |||||
| private $phids; | |||||
| private $messageKeys; | |||||
| public function withIDs(array $ids) { | |||||
| $this->ids = $ids; | |||||
| return $this; | |||||
| } | |||||
| public function withPHIDs(array $phids) { | |||||
| $this->phids = $phids; | |||||
| return $this; | |||||
| } | |||||
| public function withMessageKeys(array $keys) { | |||||
| $this->messageKeys = $keys; | |||||
| return $this; | |||||
| } | |||||
| public function newResultObject() { | |||||
| return new PhabricatorAuthMessage(); | |||||
| } | |||||
| protected function loadPage() { | |||||
| return $this->loadStandardPage($this->newResultObject()); | |||||
| } | |||||
| protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) { | |||||
| $where = parent::buildWhereClauseParts($conn); | |||||
| if ($this->ids !== null) { | |||||
| $where[] = qsprintf( | |||||
| $conn, | |||||
| 'id IN (%Ld)', | |||||
| $this->ids); | |||||
| } | |||||
| if ($this->phids !== null) { | |||||
| $where[] = qsprintf( | |||||
| $conn, | |||||
| 'phid IN (%Ls)', | |||||
| $this->phids); | |||||
| } | |||||
| if ($this->messageKeys !== null) { | |||||
| $where[] = qsprintf( | |||||
| $conn, | |||||
| 'messageKey IN (%Ls)', | |||||
| $this->messageKeys); | |||||
| } | |||||
| return $where; | |||||
| } | |||||
| protected function willFilterPage(array $messages) { | |||||
| $message_types = PhabricatorAuthMessageType::getAllMessageTypes(); | |||||
| foreach ($messages as $key => $message) { | |||||
| $message_key = $message->getMessageKey(); | |||||
| $message_type = idx($message_types, $message_key); | |||||
| if (!$message_type) { | |||||
| unset($messages[$key]); | |||||
| $this->didRejectResult($message); | |||||
| continue; | |||||
| } | |||||
| $message->attachMessageType($message_type); | |||||
| } | |||||
| return $messages; | |||||
| } | |||||
| public function getQueryApplicationClass() { | |||||
| return 'PhabricatorAuthApplication'; | |||||
| } | |||||
| } | |||||