Page MenuHomePhabricator

D15539.diff
No OneTemporary

D15539.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -1426,6 +1426,7 @@
'MultimeterViewer' => 'applications/multimeter/storage/MultimeterViewer.php',
'NuanceConduitAPIMethod' => 'applications/nuance/conduit/NuanceConduitAPIMethod.php',
'NuanceConsoleController' => 'applications/nuance/controller/NuanceConsoleController.php',
+ 'NuanceContentSource' => 'applications/nuance/contentsource/NuanceContentSource.php',
'NuanceController' => 'applications/nuance/controller/NuanceController.php',
'NuanceDAO' => 'applications/nuance/storage/NuanceDAO.php',
'NuanceGitHubEventItemType' => 'applications/nuance/item/NuanceGitHubEventItemType.php',
@@ -5726,6 +5727,7 @@
'MultimeterViewer' => 'MultimeterDimension',
'NuanceConduitAPIMethod' => 'ConduitAPIMethod',
'NuanceConsoleController' => 'NuanceController',
+ 'NuanceContentSource' => 'PhabricatorContentSource',
'NuanceController' => 'PhabricatorController',
'NuanceDAO' => 'PhabricatorLiskDAO',
'NuanceGitHubEventItemType' => 'NuanceItemType',
diff --git a/src/applications/nuance/contentsource/NuanceContentSource.php b/src/applications/nuance/contentsource/NuanceContentSource.php
new file mode 100644
--- /dev/null
+++ b/src/applications/nuance/contentsource/NuanceContentSource.php
@@ -0,0 +1,16 @@
+<?php
+
+final class NuanceContentSource
+ extends PhabricatorContentSource {
+
+ const SOURCECONST = 'nuance';
+
+ public function getSourceName() {
+ return pht('Nuance');
+ }
+
+ public function getSourceDescription() {
+ return pht('Content imported via Nuance.');
+ }
+
+}
diff --git a/src/applications/nuance/item/NuanceGitHubEventItemType.php b/src/applications/nuance/item/NuanceGitHubEventItemType.php
--- a/src/applications/nuance/item/NuanceGitHubEventItemType.php
+++ b/src/applications/nuance/item/NuanceGitHubEventItemType.php
@@ -297,7 +297,7 @@
$xobj_phid));
}
- $nuance_phid = id(new PhabricatorNuanceApplication())->getPHID();
+ $acting_as_phid = $this->getActingAsPHID($item);
$xactions = array();
@@ -307,7 +307,7 @@
->executeOne();
if (!$task) {
$task = ManiphestTask::initializeNewTask($viewer)
- ->setAuthorPHID($nuance_phid)
+ ->setAuthorPHID($acting_as_phid)
->setBridgedObjectPHID($xobj_phid);
$title = $xobj->getProperty('task.title');
@@ -344,16 +344,12 @@
->setContent($comment));
}
- // TODO: Preserve the item's original source.
- $source = PhabricatorContentSource::newForSource(
- PhabricatorDaemonContentSource::SOURCECONST);
-
- // TODO: This should really be the external source.
- $acting_phid = $nuance_phid;
+ $agent_phid = $command->getAuthorPHID();
+ $source = $this->newContentSource($item, $agent_phid);
$editor = id(new ManiphestTransactionEditor())
->setActor($viewer)
- ->setActingAsPHID($acting_phid)
+ ->setActingAsPHID($acting_as_phid)
->setContentSource($source)
->setContinueOnNoEffect(true)
->setContinueOnMissingFields(true);
@@ -366,5 +362,10 @@
);
}
+ protected function getActingAsPHID(NuanceItem $item) {
+ // TODO: This should be an external account PHID representing the original
+ // GitHub user.
+ return parent::getActingAsPHID($item);
+ }
}
diff --git a/src/applications/nuance/item/NuanceItemType.php b/src/applications/nuance/item/NuanceItemType.php
--- a/src/applications/nuance/item/NuanceItemType.php
+++ b/src/applications/nuance/item/NuanceItemType.php
@@ -144,4 +144,19 @@
return null;
}
+ final protected function newContentSource(
+ NuanceItem $item,
+ $agent_phid) {
+ return PhabricatorContentSource::newForSource(
+ NuanceContentSource::SOURCECONST,
+ array(
+ 'itemPHID' => $item->getPHID(),
+ 'agentPHID' => $agent_phid,
+ ));
+ }
+
+ protected function getActingAsPHID(NuanceItem $item) {
+ return id(new PhabricatorNuanceApplication())->getPHID();
+ }
+
}

File Metadata

Mime Type
text/plain
Expires
Mon, May 13, 6:38 AM (3 w, 5 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6273089
Default Alt Text
D15539.diff (4 KB)

Event Timeline