Differential D17182 Diff 41322 src/applications/diffusion/xaction/DiffusionCommitTransactionType.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/xaction/DiffusionCommitTransactionType.php
<?php | <?php | ||||
abstract class DiffusionCommitTransactionType | abstract class DiffusionCommitTransactionType | ||||
extends PhabricatorModularTransactionType {} | extends PhabricatorModularTransactionType { | ||||
protected function updateAudits( | |||||
PhabricatorRepositoryCommit $commit, | |||||
array $new) { | |||||
$audits = $commit->getAudits(); | |||||
$audits = mpull($audits, null, 'getAuditorPHID'); | |||||
foreach ($new as $phid => $status) { | |||||
$audit = idx($audits, $phid); | |||||
if (!$audit) { | |||||
$audit = id(new PhabricatorRepositoryAuditRequest()) | |||||
->setAuditorPHID($phid) | |||||
->setCommitPHID($commit->getPHID()); | |||||
$audits[$phid] = $audit; | |||||
} else { | |||||
if ($audit->getAuditStatus() === $status) { | |||||
continue; | |||||
} | |||||
} | |||||
$audit | |||||
->setAuditStatus($status) | |||||
->save(); | |||||
} | |||||
$commit->attachAudits($audits); | |||||
return $audits; | |||||
} | |||||
} |