@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at recaptime-dev/main 82 lines 1.8 kB view raw
1<?php 2 3/** 4 * @extends PhabricatorCursorPagedPolicyAwareQuery<PhabricatorAuthMessage> 5 */ 6final class PhabricatorAuthMessageQuery 7 extends PhabricatorCursorPagedPolicyAwareQuery { 8 9 private $ids; 10 private $phids; 11 private $messageKeys; 12 13 public function withIDs(array $ids) { 14 $this->ids = $ids; 15 return $this; 16 } 17 18 public function withPHIDs(array $phids) { 19 $this->phids = $phids; 20 return $this; 21 } 22 23 public function withMessageKeys(array $keys) { 24 $this->messageKeys = $keys; 25 return $this; 26 } 27 28 public function newResultObject() { 29 return new PhabricatorAuthMessage(); 30 } 31 32 protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) { 33 $where = parent::buildWhereClauseParts($conn); 34 35 if ($this->ids !== null) { 36 $where[] = qsprintf( 37 $conn, 38 'id IN (%Ld)', 39 $this->ids); 40 } 41 42 if ($this->phids !== null) { 43 $where[] = qsprintf( 44 $conn, 45 'phid IN (%Ls)', 46 $this->phids); 47 } 48 49 if ($this->messageKeys !== null) { 50 $where[] = qsprintf( 51 $conn, 52 'messageKey IN (%Ls)', 53 $this->messageKeys); 54 } 55 56 return $where; 57 } 58 59 protected function willFilterPage(array $messages) { 60 $message_types = PhabricatorAuthMessageType::getAllMessageTypes(); 61 62 foreach ($messages as $key => $message) { 63 $message_key = $message->getMessageKey(); 64 65 $message_type = idx($message_types, $message_key); 66 if (!$message_type) { 67 unset($messages[$key]); 68 $this->didRejectResult($message); 69 continue; 70 } 71 72 $message->attachMessageType($message_type); 73 } 74 75 return $messages; 76 } 77 78 public function getQueryApplicationClass() { 79 return PhabricatorAuthApplication::class; 80 } 81 82}