@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
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at recaptime-dev/main 78 lines 1.8 kB view raw
1<?php 2 3final class PhabricatorElasticsearchQueryBuilder extends Phobject { 4 protected $name; 5 protected $clauses = array(); 6 7 8 public function getClauses($termkey = null) { 9 $clauses = $this->clauses; 10 if ($termkey == null) { 11 return $clauses; 12 } 13 if (isset($clauses[$termkey])) { 14 return $clauses[$termkey]; 15 } 16 return array(); 17 } 18 19 public function getClauseCount($clausekey) { 20 if (isset($this->clauses[$clausekey])) { 21 return count($this->clauses[$clausekey]); 22 } else { 23 return 0; 24 } 25 } 26 27 public function addExistsClause($field) { 28 return $this->addClause('filter', array( 29 'exists' => array( 30 'field' => $field, 31 ), 32 )); 33 } 34 35 public function addTermsClause($field, $values) { 36 return $this->addClause('filter', array( 37 'terms' => array( 38 $field => array_values($values), 39 ), 40 )); 41 } 42 43 public function addMustClause($clause) { 44 return $this->addClause('must', $clause); 45 } 46 47 public function addFilterClause($clause) { 48 return $this->addClause('filter', $clause); 49 } 50 51 public function addShouldClause($clause) { 52 return $this->addClause('should', $clause); 53 } 54 55 public function addMustNotClause($clause) { 56 return $this->addClause('must_not', $clause); 57 } 58 59 public function addClause($clause, $terms) { 60 $this->clauses[$clause][] = $terms; 61 return $this; 62 } 63 64 public function toArray() { 65 $clauses = $this->getClauses(); 66 return $clauses; 67 $cleaned = array(); 68 foreach ($clauses as $clause => $subclauses) { 69 if (is_array($subclauses) && count($subclauses) == 1) { 70 $cleaned[$clause] = array_shift($subclauses); 71 } else { 72 $cleaned[$clause] = $subclauses; 73 } 74 } 75 return $cleaned; 76 } 77 78}