[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/maniphest/conduit/ -> ManiphestGetTaskTransactionsConduitAPIMethod.php (source)

   1  <?php
   2  
   3  final class ManiphestGetTaskTransactionsConduitAPIMethod
   4    extends ManiphestConduitAPIMethod {
   5  
   6    public function getAPIMethodName() {
   7      return 'maniphest.gettasktransactions';
   8    }
   9  
  10    public function getMethodDescription() {
  11      return 'Retrieve Maniphest Task Transactions.';
  12    }
  13  
  14    public function defineParamTypes() {
  15      return array(
  16        'ids' => 'required list<int>',
  17      );
  18    }
  19  
  20    public function defineReturnType() {
  21      return 'nonempty list<dict<string, wild>>';
  22    }
  23  
  24    public function defineErrorTypes() {
  25      return array(
  26      );
  27    }
  28  
  29    protected function execute(ConduitAPIRequest $request) {
  30      $results = array();
  31      $task_ids = $request->getValue('ids');
  32  
  33      if (!$task_ids) {
  34        return $results;
  35      }
  36  
  37      $tasks = id(new ManiphestTaskQuery())
  38        ->setViewer($request->getUser())
  39        ->withIDs($task_ids)
  40        ->execute();
  41      $tasks = mpull($tasks, null, 'getPHID');
  42  
  43      $transactions = array();
  44      if ($tasks) {
  45        $transactions = id(new ManiphestTransactionQuery())
  46          ->setViewer($request->getUser())
  47          ->withObjectPHIDs(mpull($tasks, 'getPHID'))
  48          ->needComments(true)
  49          ->execute();
  50      }
  51  
  52      foreach ($transactions as $transaction) {
  53        $task_phid = $transaction->getObjectPHID();
  54        if (empty($tasks[$task_phid])) {
  55          continue;
  56        }
  57  
  58        $task_id = $tasks[$task_phid]->getID();
  59  
  60        $comments = null;
  61        if ($transaction->hasComment()) {
  62          $comments = $transaction->getComment()->getContent();
  63        }
  64  
  65        $results[$task_id][] = array(
  66          'taskID'  => $task_id,
  67          'transactionPHID' => $transaction->getPHID(),
  68          'transactionType'  => $transaction->getTransactionType(),
  69          'oldValue'  => $transaction->getOldValue(),
  70          'newValue'  => $transaction->getNewValue(),
  71          'comments'      => $comments,
  72          'authorPHID'  => $transaction->getAuthorPHID(),
  73          'dateCreated' => $transaction->getDateCreated(),
  74        );
  75      }
  76  
  77      return $results;
  78    }
  79  
  80  }


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