Path: blob/master/src/applications/harbormaster/query/HarbormasterBuildLogQuery.php
12256 views
<?php12final class HarbormasterBuildLogQuery3extends PhabricatorCursorPagedPolicyAwareQuery {45private $ids;6private $phids;7private $buildPHIDs;8private $buildTargetPHIDs;910public function withIDs(array $ids) {11$this->ids = $ids;12return $this;13}1415public function withPHIDs(array $phids) {16$this->phids = $phids;17return $this;18}1920public function withBuildTargetPHIDs(array $build_target_phids) {21$this->buildTargetPHIDs = $build_target_phids;22return $this;23}2425public function newResultObject() {26return new HarbormasterBuildLog();27}2829protected function willFilterPage(array $page) {30$build_targets = array();3132$build_target_phids = array_filter(mpull($page, 'getBuildTargetPHID'));33if ($build_target_phids) {34$build_targets = id(new HarbormasterBuildTargetQuery())35->setViewer($this->getViewer())36->withPHIDs($build_target_phids)37->setParentQuery($this)38->execute();39$build_targets = mpull($build_targets, null, 'getPHID');40}4142foreach ($page as $key => $build_log) {43$build_target_phid = $build_log->getBuildTargetPHID();44if (empty($build_targets[$build_target_phid])) {45unset($page[$key]);46continue;47}48$build_log->attachBuildTarget($build_targets[$build_target_phid]);49}5051return $page;52}5354protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) {55$where = parent::buildWhereClauseParts($conn);5657if ($this->ids !== null) {58$where[] = qsprintf(59$conn,60'id IN (%Ld)',61$this->ids);62}6364if ($this->phids !== null) {65$where[] = qsprintf(66$conn,67'phid IN (%Ls)',68$this->phids);69}7071if ($this->buildTargetPHIDs !== null) {72$where[] = qsprintf(73$conn,74'buildTargetPHID IN (%Ls)',75$this->buildTargetPHIDs);76}7778return $where;79}8081public function getQueryApplicationClass() {82return 'PhabricatorHarbormasterApplication';83}8485}868788