3 final class UserQueryConduitAPIMethod
extends UserConduitAPIMethod
{
5 public function getAPIMethodName() {
9 public function getMethodDescription() {
10 return pht('Query users.');
13 public function getMethodStatus() {
14 return self
::METHOD_STATUS_FROZEN
;
17 public function getMethodStatusDescription() {
19 'This method is frozen and will eventually be deprecated. New code '.
20 'should use "user.search" instead.');
23 protected function defineParamTypes() {
25 'usernames' => 'optional list<string>',
26 'emails' => 'optional list<string>',
27 'realnames' => 'optional list<string>',
28 'phids' => 'optional list<phid>',
29 'ids' => 'optional list<uint>',
30 'offset' => 'optional int',
31 'limit' => 'optional int (default = 100)',
35 protected function defineReturnType() {
39 protected function defineErrorTypes() {
41 'ERR-INVALID-PARAMETER' => pht('Missing or malformed parameter.'),
45 protected function execute(ConduitAPIRequest
$request) {
46 $usernames = $request->getValue('usernames', array());
47 $emails = $request->getValue('emails', array());
48 $realnames = $request->getValue('realnames', array());
49 $phids = $request->getValue('phids', array());
50 $ids = $request->getValue('ids', array());
51 $offset = $request->getValue('offset', 0);
52 $limit = $request->getValue('limit', 100);
54 $query = id(new PhabricatorPeopleQuery())
55 ->setViewer($request->getUser())
56 ->needProfileImage(true)
57 ->needAvailability(true);
60 $query->withUsernames($usernames);
63 $query->withEmails($emails);
66 $query->withRealnames($realnames);
69 $query->withPHIDs($phids);
72 $query->withIDs($ids);
75 $query->setLimit($limit);
78 $query->setOffset($offset);
80 $users = $query->execute();
83 foreach ($users as $user) {
84 $results[] = $this->buildUserInformationDictionary(
87 $with_availability = true);