[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/diffusion/controller/ -> DiffusionPathValidateController.php (source)

   1  <?php
   2  
   3  final class DiffusionPathValidateController extends DiffusionController {
   4  
   5    public function willProcessRequest(array $data) {
   6      // Don't build a DiffusionRequest.
   7    }
   8  
   9    public function processRequest() {
  10      $request = $this->getRequest();
  11  
  12      $repository_phid = $request->getStr('repositoryPHID');
  13      $repository = id(new PhabricatorRepositoryQuery())
  14        ->setViewer($request->getUser())
  15        ->withPHIDs(array($repository_phid))
  16        ->executeOne();
  17      if (!$repository) {
  18        return new Aphront400Response();
  19      }
  20  
  21      $path = $request->getStr('path');
  22      $path = ltrim($path, '/');
  23  
  24      $drequest = DiffusionRequest::newFromDictionary(
  25        array(
  26          'user' => $request->getUser(),
  27          'repository' => $repository,
  28          'path' => $path,
  29        ));
  30      $this->setDiffusionRequest($drequest);
  31  
  32      $browse_results = DiffusionBrowseResultSet::newFromConduit(
  33        $this->callConduitWithDiffusionRequest(
  34          'diffusion.browsequery',
  35          array(
  36            'path' => $drequest->getPath(),
  37            'commit' => $drequest->getCommit(),
  38            'needValidityOnly' => true,
  39          )));
  40      $valid = $browse_results->isValidResults();
  41  
  42      if (!$valid) {
  43        switch ($browse_results->getReasonForEmptyResultSet()) {
  44          case DiffusionBrowseResultSet::REASON_IS_FILE:
  45            $valid = true;
  46            break;
  47          case DiffusionBrowseResultSet::REASON_IS_EMPTY:
  48            $valid = true;
  49            break;
  50        }
  51      }
  52  
  53      $output = array(
  54        'valid' => (bool)$valid,
  55      );
  56  
  57      if (!$valid) {
  58        $branch = $drequest->getBranch();
  59        if ($branch) {
  60          $message = pht('Not found in %s', $branch);
  61        } else {
  62          $message = pht('Not found at HEAD');
  63        }
  64      } else {
  65        $message = pht('OK');
  66      }
  67  
  68      $output['message'] = $message;
  69  
  70      return id(new AphrontAjaxResponse())->setContent($output);
  71    }
  72  }


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