Differential D17514 Diff 42139 src/applications/differential/xaction/DifferentialRevisionReviewTransaction.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/xaction/DifferentialRevisionReviewTransaction.php
Show First 20 Lines • Show All 132 Lines • ▼ Show 20 Lines | foreach ($map as $dst_phid => $edge_data) { | ||||
} | } | ||||
} | } | ||||
$editor->save(); | $editor->save(); | ||||
// Now, do the new write. | // Now, do the new write. | ||||
if ($map) { | if ($map) { | ||||
$diff = $this->getEditor()->getActiveDiff($revision); | |||||
if ($diff) { | |||||
$diff_phid = $diff->getPHID(); | |||||
} else { | |||||
$diff_phid = null; | |||||
} | |||||
$table = new DifferentialReviewer(); | $table = new DifferentialReviewer(); | ||||
$reviewers = $table->loadAllWhere( | $reviewers = $table->loadAllWhere( | ||||
'revisionPHID = %s AND reviewerPHID IN (%Ls)', | 'revisionPHID = %s AND reviewerPHID IN (%Ls)', | ||||
$src_phid, | $src_phid, | ||||
array_keys($map)); | array_keys($map)); | ||||
$reviewers = mpull($reviewers, null, 'getReviewerPHID'); | $reviewers = mpull($reviewers, null, 'getReviewerPHID'); | ||||
foreach ($map as $dst_phid => $edge_data) { | foreach ($map as $dst_phid => $edge_data) { | ||||
$reviewer = idx($reviewers, $dst_phid); | $reviewer = idx($reviewers, $dst_phid); | ||||
if (!$reviewer) { | if (!$reviewer) { | ||||
$reviewer = id(new DifferentialReviewer()) | $reviewer = id(new DifferentialReviewer()) | ||||
->setRevisionPHID($src_phid) | ->setRevisionPHID($src_phid) | ||||
->setReviewerPHID($dst_phid); | ->setReviewerPHID($dst_phid); | ||||
} | } | ||||
$reviewer->setReviewerStatus($status); | $reviewer->setReviewerStatus($status); | ||||
if ($diff_phid) { | |||||
$reviewer->setLastActionDiffPHID($diff_phid); | |||||
} | |||||
if ($status == DifferentialReviewerStatus::STATUS_RESIGNED) { | if ($status == DifferentialReviewerStatus::STATUS_RESIGNED) { | ||||
if ($reviewer->getID()) { | if ($reviewer->getID()) { | ||||
$reviewer->delete(); | $reviewer->delete(); | ||||
} | } | ||||
} else { | } else { | ||||
try { | try { | ||||
$reviewer->save(); | $reviewer->save(); | ||||
} catch (AphrontDuplicateKeyQueryException $ex) { | } catch (AphrontDuplicateKeyQueryException $ex) { | ||||
Show All 9 Lines |