protected function execute(ConduitAPIRequest $request)
 {
     $query = new PhabricatorProjectQuery();
     $query->setViewer($request->getUser());
     $query->needMembers(true);
     $query->needSlugs(true);
     $ids = $request->getValue('ids');
     if ($ids) {
         $query->withIDs($ids);
     }
     $names = $request->getValue('names');
     if ($names) {
         $query->withNames($names);
     }
     $status = $request->getValue('status');
     if ($status) {
         $query->withStatus($status);
     }
     $phids = $request->getValue('phids');
     if ($phids) {
         $query->withPHIDs($phids);
     }
     $slugs = $request->getValue('slugs');
     if ($slugs) {
         $query->withSlugs($slugs);
     }
     $request->getValue('icons');
     if ($request->getValue('icons')) {
         $icons = array();
         // the internal 'fa-' prefix is a detail hidden from api clients
         // but needs to pre prepended to the values in the icons array:
         foreach ($request->getValue('icons') as $value) {
             $icons[] = 'fa-' . $value;
         }
         $query->withIcons($icons);
     }
     $colors = $request->getValue('colors');
     if ($colors) {
         $query->withColors($colors);
     }
     $members = $request->getValue('members');
     if ($members) {
         $query->withMemberPHIDs($members);
     }
     $limit = $request->getValue('limit');
     if ($limit) {
         $query->setLimit($limit);
     }
     $offset = $request->getValue('offset');
     if ($offset) {
         $query->setOffset($offset);
     }
     $pager = $this->newPager($request);
     $results = $query->executeWithCursorPager($pager);
     $projects = $this->buildProjectInfoDictionaries($results);
     // TODO: This is pretty hideous.
     $slug_map = array();
     if ($slugs) {
         foreach ($slugs as $slug) {
             $normal = PhabricatorSlug::normalizeProjectSlug($slug);
             foreach ($projects as $project) {
                 if (in_array($normal, $project['slugs'])) {
                     $slug_map[$slug] = $project['phid'];
                 }
             }
         }
     }
     $result = array('data' => $projects, 'slugMap' => $slug_map);
     return $this->addPagerResults($result, $pager);
 }