Page MenuHomePhabricator

D9619.id23274.diff
No OneTemporary

D9619.id23274.diff

diff --git a/src/applications/project/conduit/ConduitAPI_project_Method.php b/src/applications/project/conduit/ConduitAPI_project_Method.php
--- a/src/applications/project/conduit/ConduitAPI_project_Method.php
+++ b/src/applications/project/conduit/ConduitAPI_project_Method.php
@@ -27,11 +27,15 @@
$member_phids = $project->getMemberPHIDs();
$member_phids = array_values($member_phids);
+ $project_slugs = $project->getSlugs();
+ $project_slugs = array_values(mpull($project_slugs, 'getSlug'));
+
$result[$project->getPHID()] = array(
'id' => $project->getID(),
'phid' => $project->getPHID(),
'name' => $project->getName(),
'members' => $member_phids,
+ 'slugs' => $project_slugs,
'dateCreated' => $project->getDateCreated(),
'dateModified' => $project->getDateModified(),
);
diff --git a/src/applications/project/conduit/ConduitAPI_project_query_Method.php b/src/applications/project/conduit/ConduitAPI_project_query_Method.php
--- a/src/applications/project/conduit/ConduitAPI_project_query_Method.php
+++ b/src/applications/project/conduit/ConduitAPI_project_query_Method.php
@@ -46,6 +46,7 @@
$query = new PhabricatorProjectQuery();
$query->setViewer($request->getUser());
$query->needMembers(true);
+ $query->needSlugs(true);
$ids = $request->getValue('ids');
if ($ids) {
@@ -82,8 +83,26 @@
$query->setOffset($offset);
}
- $results = $query->execute();
- return $this->buildProjectInfoDictionaries($results);
+ $pager = $this->newPager($request);
+ $results = $query->executeWithCursorPager($pager);
+ $projects = $this->buildProjectInfoDictionaries($results);
+
+ // This is hideous...
+ $slug_map = array();
+ foreach ($slugs as $slug) {
+ foreach ($projects as $project) {
+ if (in_array($slug, $project['slugs'])) {
+ $slug_map[$slug] = $project['id'];
+ }
+ }
+ }
+
+ $result = array(
+ 'data' => $projects,
+ 'slugMap' => $slug_map,
+ );
+
+ return $this->addPagerResults($result, $pager);
}
}

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 20, 8:21 AM (2 d, 7 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7712813
Default Alt Text
D9619.id23274.diff (2 KB)

Event Timeline