mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-28 17:52:43 +01:00
7654df5d3b
Summary: Some actions (notably, `!accept`) require more information than we currently load. Test Plan: Piped in some `!accept` mail using `bin/mail receive-test`. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D8844
40 lines
1 KiB
PHP
40 lines
1 KiB
PHP
<?php
|
|
|
|
final class DifferentialRevisionMailReceiver
|
|
extends PhabricatorObjectMailReceiver {
|
|
|
|
public function isEnabled() {
|
|
$app_class = 'PhabricatorApplicationDifferential';
|
|
return PhabricatorApplication::isClassInstalled($app_class);
|
|
}
|
|
|
|
protected function getObjectPattern() {
|
|
return 'D[1-9]\d*';
|
|
}
|
|
|
|
protected function loadObject($pattern, PhabricatorUser $viewer) {
|
|
$id = (int)trim($pattern, 'D');
|
|
|
|
return id(new DifferentialRevisionQuery())
|
|
->setViewer($viewer)
|
|
->withIDs(array($id))
|
|
->needReviewerStatus(true)
|
|
->needReviewerAuthority(true)
|
|
->needActiveDiffs(true)
|
|
->executeOne();
|
|
}
|
|
|
|
protected function processReceivedObjectMail(
|
|
PhabricatorMetaMTAReceivedMail $mail,
|
|
PhabricatorLiskDAO $object,
|
|
PhabricatorUser $sender) {
|
|
|
|
$handler = DifferentialMail::newReplyHandlerForRevision($object);
|
|
|
|
$handler->setActor($sender);
|
|
$handler->setExcludeMailRecipientPHIDs(
|
|
$mail->loadExcludeMailRecipientPHIDs());
|
|
$handler->processEmail($mail);
|
|
}
|
|
|
|
}
|