[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/people/conduit/ -> UserQueryConduitAPIMethod.php (source)

   1  <?php
   2  
   3  final class UserQueryConduitAPIMethod extends UserConduitAPIMethod {
   4  
   5    public function getAPIMethodName() {
   6      return 'user.query';
   7    }
   8  
   9    public function getMethodDescription() {
  10      return 'Query users.';
  11    }
  12  
  13    public function defineParamTypes() {
  14      return array(
  15        'usernames'    => 'optional list<string>',
  16        'emails'       => 'optional list<string>',
  17        'realnames'    => 'optional list<string>',
  18        'phids'        => 'optional list<phid>',
  19        'ids'          => 'optional list<uint>',
  20        'offset'       => 'optional int',
  21        'limit'        => 'optional int (default = 100)',
  22      );
  23    }
  24  
  25    public function defineReturnType() {
  26      return 'list<dict>';
  27    }
  28  
  29    public function defineErrorTypes() {
  30      return array(
  31        'ERR-INVALID-PARAMETER' => 'Missing or malformed parameter.',
  32      );
  33    }
  34  
  35    protected function execute(ConduitAPIRequest $request) {
  36      $usernames   = $request->getValue('usernames', array());
  37      $emails      = $request->getValue('emails',    array());
  38      $realnames   = $request->getValue('realnames', array());
  39      $phids       = $request->getValue('phids',     array());
  40      $ids         = $request->getValue('ids',       array());
  41      $offset      = $request->getValue('offset',    0);
  42      $limit       = $request->getValue('limit',     100);
  43  
  44      $query = new PhabricatorPeopleQuery();
  45      $query->setViewer($request->getUser());
  46  
  47      if ($usernames) {
  48        $query->withUsernames($usernames);
  49      }
  50      if ($emails) {
  51        $query->withEmails($emails);
  52      }
  53      if ($realnames) {
  54        $query->withRealnames($realnames);
  55      }
  56      if ($phids) {
  57        $query->withPHIDs($phids);
  58      }
  59      if ($ids) {
  60        $query->withIDs($ids);
  61      }
  62      if ($limit) {
  63        $query->setLimit($limit);
  64      }
  65      if ($offset) {
  66        $query->setOffset($offset);
  67      }
  68      $users = $query->execute();
  69  
  70      $statuses = id(new PhabricatorCalendarEvent())->loadCurrentStatuses(
  71        mpull($users, 'getPHID'));
  72  
  73      $results = array();
  74      foreach ($users as $user) {
  75        $results[] = $this->buildUserInformationDictionary(
  76          $user,
  77          idx($statuses, $user->getPHID()));
  78      }
  79      return $results;
  80    }
  81  
  82  }


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