[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/harbormaster/conduit/ -> HarbormasterQueryBuildsConduitAPIMethod.php (source)

   1  <?php
   2  
   3  final class HarbormasterQueryBuildsConduitAPIMethod
   4    extends HarbormasterConduitAPIMethod {
   5  
   6    public function getAPIMethodName() {
   7      return 'harbormaster.querybuilds';
   8    }
   9  
  10    public function getMethodDescription() {
  11      return pht('Query Harbormaster builds.');
  12    }
  13  
  14    public function defineParamTypes() {
  15      return array(
  16        'ids' => 'optional list<id>',
  17        'phids' => 'optional list<phid>',
  18        'buildStatuses' => 'optional list<string>',
  19        'buildablePHIDs' => 'optional list<phid>',
  20        'buildPlanPHIDs' => 'optional list<phid>',
  21      ) + self::getPagerParamTypes();
  22    }
  23  
  24    public function defineReturnType() {
  25      return 'wild';
  26    }
  27  
  28    public function defineErrorTypes() {
  29      return array();
  30    }
  31  
  32    protected function execute(ConduitAPIRequest $request) {
  33      $viewer = $request->getUser();
  34  
  35      $query = id(new HarbormasterBuildQuery())
  36        ->setViewer($viewer);
  37  
  38      $ids = $request->getValue('ids');
  39      if ($ids !== null) {
  40        $query->withIDs($ids);
  41      }
  42  
  43      $phids = $request->getValue('phids');
  44      if ($phids !== null) {
  45        $query->withPHIDs($phids);
  46      }
  47  
  48      $statuses = $request->getValue('buildStatuses');
  49      if ($statuses !== null) {
  50        $query->withBuildStatuses($statuses);
  51      }
  52  
  53      $buildable_phids = $request->getValue('buildablePHIDs');
  54      if ($buildable_phids !== null) {
  55        $query->withBuildablePHIDs($buildable_phids);
  56      }
  57  
  58      $build_plan_phids = $request->getValue('buildPlanPHIDs');
  59      if ($build_plan_phids !== null) {
  60        $query->withBuildPlanPHIDs($build_plan_phids);
  61      }
  62  
  63      $pager = $this->newPager($request);
  64  
  65      $builds = $query->executeWithCursorPager($pager);
  66  
  67      $data = array();
  68      foreach ($builds as $build) {
  69  
  70        $id = $build->getID();
  71        $uri = '/harbormaster/build/'.$id.'/';
  72        $status = $build->getBuildStatus();
  73  
  74        $data[] = array(
  75          'id' => $id,
  76          'phid' => $build->getPHID(),
  77          'uri' => PhabricatorEnv::getProductionURI($uri),
  78          'name' => $build->getBuildPlan()->getName(),
  79          'buildablePHID' => $build->getBuildablePHID(),
  80          'buildPlanPHID' => $build->getBuildPlanPHID(),
  81          'buildStatus' => $status,
  82          'buildStatusName' => HarbormasterBuild::getBuildStatusName($status),
  83        );
  84      }
  85  
  86      $results = array(
  87        'data' => $data,
  88      );
  89  
  90      $results = $this->addPagerResults($results, $pager);
  91      return $results;
  92    }
  93  
  94  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1