Correct Aphlict websocket URI construction after PHP8 compatibility changes
[phabricator.git] / src / applications / auth / query / PhabricatorAuthMessageQuery.php
blob7158d03a00f85dc1f2d520a5b596cbf23d2a3690
1 <?php
3 final class PhabricatorAuthMessageQuery
4 extends PhabricatorCursorPagedPolicyAwareQuery {
6 private $ids;
7 private $phids;
8 private $messageKeys;
10 public function withIDs(array $ids) {
11 $this->ids = $ids;
12 return $this;
15 public function withPHIDs(array $phids) {
16 $this->phids = $phids;
17 return $this;
20 public function withMessageKeys(array $keys) {
21 $this->messageKeys = $keys;
22 return $this;
25 public function newResultObject() {
26 return new PhabricatorAuthMessage();
29 protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) {
30 $where = parent::buildWhereClauseParts($conn);
32 if ($this->ids !== null) {
33 $where[] = qsprintf(
34 $conn,
35 'id IN (%Ld)',
36 $this->ids);
39 if ($this->phids !== null) {
40 $where[] = qsprintf(
41 $conn,
42 'phid IN (%Ls)',
43 $this->phids);
46 if ($this->messageKeys !== null) {
47 $where[] = qsprintf(
48 $conn,
49 'messageKey IN (%Ls)',
50 $this->messageKeys);
53 return $where;
56 protected function willFilterPage(array $messages) {
57 $message_types = PhabricatorAuthMessageType::getAllMessageTypes();
59 foreach ($messages as $key => $message) {
60 $message_key = $message->getMessageKey();
62 $message_type = idx($message_types, $message_key);
63 if (!$message_type) {
64 unset($messages[$key]);
65 $this->didRejectResult($message);
66 continue;
69 $message->attachMessageType($message_type);
72 return $messages;
75 public function getQueryApplicationClass() {
76 return 'PhabricatorAuthApplication';