Path: blob/master/src/applications/people/conduit/UserQueryConduitAPIMethod.php
12256 views
<?php12final class UserQueryConduitAPIMethod extends UserConduitAPIMethod {34public function getAPIMethodName() {5return 'user.query';6}78public function getMethodDescription() {9return pht('Query users.');10}1112public function getMethodStatus() {13return self::METHOD_STATUS_FROZEN;14}1516public function getMethodStatusDescription() {17return pht(18'This method is frozen and will eventually be deprecated. New code '.19'should use "user.search" instead.');20}2122protected function defineParamTypes() {23return array(24'usernames' => 'optional list<string>',25'emails' => 'optional list<string>',26'realnames' => 'optional list<string>',27'phids' => 'optional list<phid>',28'ids' => 'optional list<uint>',29'offset' => 'optional int',30'limit' => 'optional int (default = 100)',31);32}3334protected function defineReturnType() {35return 'list<dict>';36}3738protected function defineErrorTypes() {39return array(40'ERR-INVALID-PARAMETER' => pht('Missing or malformed parameter.'),41);42}4344protected function execute(ConduitAPIRequest $request) {45$usernames = $request->getValue('usernames', array());46$emails = $request->getValue('emails', array());47$realnames = $request->getValue('realnames', array());48$phids = $request->getValue('phids', array());49$ids = $request->getValue('ids', array());50$offset = $request->getValue('offset', 0);51$limit = $request->getValue('limit', 100);5253$query = id(new PhabricatorPeopleQuery())54->setViewer($request->getUser())55->needProfileImage(true)56->needAvailability(true);5758if ($usernames) {59$query->withUsernames($usernames);60}61if ($emails) {62$query->withEmails($emails);63}64if ($realnames) {65$query->withRealnames($realnames);66}67if ($phids) {68$query->withPHIDs($phids);69}70if ($ids) {71$query->withIDs($ids);72}73if ($limit) {74$query->setLimit($limit);75}76if ($offset) {77$query->setOffset($offset);78}79$users = $query->execute();8081$results = array();82foreach ($users as $user) {83$results[] = $this->buildUserInformationDictionary(84$user,85$with_email = false,86$with_availability = true);87}88return $results;89}9091}929394