Path: blob/master/src/applications/differential/query/DifferentialRevisionResultBucket.php
12256 views
<?php12abstract class DifferentialRevisionResultBucket3extends PhabricatorSearchResultBucket {45public static function getAllResultBuckets() {6return id(new PhutilClassMapQuery())7->setAncestorClass(__CLASS__)8->setUniqueMethod('getResultBucketKey')9->execute();10}1112protected function getRevisionsUnderReview(array $objects, array $phids) {13$results = array();1415$objects = $this->getRevisionsNotAuthored($objects, $phids);1617foreach ($objects as $key => $object) {18if (!$object->isNeedsReview()) {19continue;20}2122$results[$key] = $object;23}2425return $results;26}2728protected function getRevisionsAuthored(array $objects, array $phids) {29$results = array();3031foreach ($objects as $key => $object) {32if (isset($phids[$object->getAuthorPHID()])) {33$results[$key] = $object;34}35}3637return $results;38}3940protected function getRevisionsNotAuthored(array $objects, array $phids) {41$results = array();4243foreach ($objects as $key => $object) {44if (empty($phids[$object->getAuthorPHID()])) {45$results[$key] = $object;46}47}4849return $results;50}5152protected function hasReviewersWithStatus(53DifferentialRevision $revision,54array $phids,55array $statuses,56$include_voided = null) {5758foreach ($revision->getReviewers() as $reviewer) {59$reviewer_phid = $reviewer->getReviewerPHID();60if (empty($phids[$reviewer_phid])) {61continue;62}6364$status = $reviewer->getReviewerStatus();65if (empty($statuses[$status])) {66continue;67}6869if ($include_voided !== null) {70if ($status == DifferentialReviewerStatus::STATUS_ACCEPTED) {71$is_voided = (bool)$reviewer->getVoidedPHID();72if ($is_voided !== $include_voided) {73continue;74}75}76}7778return true;79}8081return false;82}838485}868788