[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

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

   1  <?php
   2  
   3  final class HarbormasterQueryBuildablesConduitAPIMethod
   4    extends HarbormasterConduitAPIMethod {
   5  
   6    public function getAPIMethodName() {
   7      return 'harbormaster.querybuildables';
   8    }
   9  
  10    public function getMethodDescription() {
  11      return pht('Query Harbormaster buildables.');
  12    }
  13  
  14    public function defineParamTypes() {
  15      return array(
  16        'ids' => 'optional list<id>',
  17        'phids' => 'optional list<phid>',
  18        'buildablePHIDs' => 'optional list<phid>',
  19        'containerPHIDs' => 'optional list<phid>',
  20        'manualBuildables' => 'optional bool',
  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 HarbormasterBuildableQuery())
  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      $buildable_phids = $request->getValue('buildablePHIDs');
  49      if ($buildable_phids !== null) {
  50        $query->withBuildablePHIDs($buildable_phids);
  51      }
  52  
  53      $container_phids = $request->getValue('containerPHIDs');
  54      if ($container_phids !== null) {
  55        $query->withContainerPHIDs($container_phids);
  56      }
  57  
  58      $manual = $request->getValue('manualBuildables');
  59      if ($manual !== null) {
  60        $query->withManualBuildables($manual);
  61      }
  62  
  63      $pager = $this->newPager($request);
  64  
  65      $buildables = $query->executeWithCursorPager($pager);
  66  
  67      $data = array();
  68      foreach ($buildables as $buildable) {
  69        $monogram = $buildable->getMonogram();
  70  
  71        $status = $buildable->getBuildableStatus();
  72        $status_name = HarbormasterBuildable::getBuildableStatusName($status);
  73  
  74        $data[] = array(
  75          'id' => $buildable->getID(),
  76          'phid' => $buildable->getPHID(),
  77          'monogram' => $monogram,
  78          'uri' => PhabricatorEnv::getProductionURI('/'.$monogram),
  79          'buildableStatus' => $status,
  80          'buildableStatusName' => $status_name,
  81          'buildablePHID' => $buildable->getBuildablePHID(),
  82          'containerPHID' => $buildable->getContainerPHID(),
  83          'isManualBuildable' => (bool)$buildable->getIsManualBuildable(),
  84        );
  85      }
  86  
  87      $results = array(
  88        'data' => $data,
  89      );
  90  
  91      $results = $this->addPagerResults($results, $pager);
  92      return $results;
  93    }
  94  
  95  }


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