@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3abstract class ProjectConduitAPIMethod extends ConduitAPIMethod {
4
5 final public function getApplication() {
6 return PhabricatorApplication::getByClass(
7 PhabricatorProjectApplication::class);
8 }
9
10 protected function buildProjectInfoDictionary(PhabricatorProject $project) {
11 $results = $this->buildProjectInfoDictionaries(array($project));
12 return idx($results, $project->getPHID());
13 }
14
15 /**
16 * @param array<PhabricatorProject> $projects
17 */
18 protected function buildProjectInfoDictionaries(array $projects) {
19 assert_instances_of($projects, PhabricatorProject::class);
20 if (!$projects) {
21 return array();
22 }
23
24 $result = array();
25 foreach ($projects as $project) {
26
27 $member_phids = $project->getMemberPHIDs();
28 $member_phids = array_values($member_phids);
29
30 $project_slugs = $project->getSlugs();
31 $project_slugs = array_values(mpull($project_slugs, 'getSlug'));
32
33 $project_icon = $project->getDisplayIconKey();
34
35 $result[$project->getPHID()] = array(
36 'id' => $project->getID(),
37 'phid' => $project->getPHID(),
38 'name' => $project->getName(),
39 'profileImagePHID' => $project->getProfileImagePHID(),
40 'icon' => $project_icon,
41 'color' => $project->getColor(),
42 'members' => $member_phids,
43 'slugs' => $project_slugs,
44 'dateCreated' => $project->getDateCreated(),
45 'dateModified' => $project->getDateModified(),
46 );
47 }
48
49 return $result;
50 }
51
52}