Try the whole Salmon action for AlreadyFulfilledException
If we have already fulfilled the action, we don't have to send an error back.
This commit is contained in:
parent
c1dc13bef0
commit
d534ea7bd6
|
@ -113,8 +113,7 @@ class UsersalmonAction extends SalmonAction
|
|||
$oprofile = $this->ensureProfile();
|
||||
if ($oprofile instanceof Ostatus_profile) {
|
||||
common_log(LOG_INFO, sprintf('Setting up subscription from remote %s to local %s', $oprofile->getUri(), $this->target->getNickname()));
|
||||
Subscription::start($oprofile->localProfile(),
|
||||
$this->target);
|
||||
Subscription::start($oprofile->localProfile(), $this->target);
|
||||
} else {
|
||||
common_log(LOG_INFO, "Can't set up subscription from remote; missing profile.");
|
||||
}
|
||||
|
@ -135,8 +134,6 @@ class UsersalmonAction extends SalmonAction
|
|||
Subscription::cancel($oprofile->localProfile(), $this->target);
|
||||
} catch (NoProfileException $e) {
|
||||
common_debug('Could not find profile for Subscription: '.$e->getMessage());
|
||||
} catch (AlreadyFulfilledException $e) {
|
||||
common_debug('Subscription did not exist, so there was nothing to cancel');
|
||||
}
|
||||
} else {
|
||||
common_log(LOG_ERR, "Can't cancel subscription from remote, didn't find the profile");
|
||||
|
@ -158,7 +155,7 @@ class UsersalmonAction extends SalmonAction
|
|||
|
||||
if ($old instanceof Fave) {
|
||||
// TRANS: Client exception.
|
||||
throw new ClientException(_m('This is already a favorite.'));
|
||||
throw new AlreadyFulfilledException(_m('This is already a favorite.'));
|
||||
}
|
||||
|
||||
if (!Fave::addNew($profile, $notice)) {
|
||||
|
@ -180,7 +177,7 @@ class UsersalmonAction extends SalmonAction
|
|||
'notice_id' => $notice->id));
|
||||
if (!$fave instanceof Fave) {
|
||||
// TRANS: Client exception.
|
||||
throw new ClientException(_m('Notice was not favorited!'));
|
||||
throw new AlreadyFulfilledException(_m('Notice was not favorited!'));
|
||||
}
|
||||
|
||||
$fave->delete();
|
||||
|
|
|
@ -77,50 +77,56 @@ class SalmonAction extends Action
|
|||
parent::handle();
|
||||
|
||||
common_log(LOG_DEBUG, "Got a " . $this->activity->verb);
|
||||
if (Event::handle('StartHandleSalmonTarget', array($this->activity, $this->target)) &&
|
||||
Event::handle('StartHandleSalmon', array($this->activity))) {
|
||||
switch ($this->activity->verb)
|
||||
{
|
||||
case ActivityVerb::POST:
|
||||
$this->handlePost();
|
||||
break;
|
||||
case ActivityVerb::SHARE:
|
||||
$this->handleShare();
|
||||
break;
|
||||
case ActivityVerb::FAVORITE:
|
||||
$this->handleFavorite();
|
||||
break;
|
||||
case ActivityVerb::UNFAVORITE:
|
||||
$this->handleUnfavorite();
|
||||
break;
|
||||
case ActivityVerb::FOLLOW:
|
||||
case ActivityVerb::FRIEND:
|
||||
$this->handleFollow();
|
||||
break;
|
||||
case ActivityVerb::UNFOLLOW:
|
||||
$this->handleUnfollow();
|
||||
break;
|
||||
case ActivityVerb::JOIN:
|
||||
$this->handleJoin();
|
||||
break;
|
||||
case ActivityVerb::LEAVE:
|
||||
$this->handleLeave();
|
||||
break;
|
||||
case ActivityVerb::TAG:
|
||||
$this->handleTag();
|
||||
break;
|
||||
case ActivityVerb::UNTAG:
|
||||
$this->handleUntag();
|
||||
break;
|
||||
case ActivityVerb::UPDATE_PROFILE:
|
||||
$this->handleUpdateProfile();
|
||||
break;
|
||||
default:
|
||||
// TRANS: Client exception.
|
||||
throw new ClientException(_m('Unrecognized activity type.'));
|
||||
try {
|
||||
if (Event::handle('StartHandleSalmonTarget', array($this->activity, $this->target)) &&
|
||||
Event::handle('StartHandleSalmon', array($this->activity))) {
|
||||
switch ($this->activity->verb) {
|
||||
case ActivityVerb::POST:
|
||||
$this->handlePost();
|
||||
break;
|
||||
case ActivityVerb::SHARE:
|
||||
$this->handleShare();
|
||||
break;
|
||||
case ActivityVerb::FAVORITE:
|
||||
$this->handleFavorite();
|
||||
break;
|
||||
case ActivityVerb::UNFAVORITE:
|
||||
$this->handleUnfavorite();
|
||||
break;
|
||||
case ActivityVerb::FOLLOW:
|
||||
case ActivityVerb::FRIEND:
|
||||
$this->handleFollow();
|
||||
break;
|
||||
case ActivityVerb::UNFOLLOW:
|
||||
$this->handleUnfollow();
|
||||
break;
|
||||
case ActivityVerb::JOIN:
|
||||
$this->handleJoin();
|
||||
break;
|
||||
case ActivityVerb::LEAVE:
|
||||
$this->handleLeave();
|
||||
break;
|
||||
case ActivityVerb::TAG:
|
||||
$this->handleTag();
|
||||
break;
|
||||
case ActivityVerb::UNTAG:
|
||||
$this->handleUntag();
|
||||
break;
|
||||
case ActivityVerb::UPDATE_PROFILE:
|
||||
$this->handleUpdateProfile();
|
||||
break;
|
||||
default:
|
||||
// TRANS: Client exception.
|
||||
throw new ClientException(_m('Unrecognized activity type.'));
|
||||
}
|
||||
Event::handle('EndHandleSalmon', array($this->activity));
|
||||
Event::handle('EndHandleSalmonTarget', array($this->activity, $this->target));
|
||||
}
|
||||
Event::handle('EndHandleSalmon', array($this->activity));
|
||||
Event::handle('EndHandleSalmonTarget', array($this->activity, $this->target));
|
||||
} catch (AlreadyFulfilledException $e) {
|
||||
// The action's results are already fulfilled. Maybe it was a
|
||||
// duplicate? Maybe someone's database is out of sync?
|
||||
// Let's just accept it and move on.
|
||||
common_log(LOG_INFO, 'Salmon slap carried an event which had already been fulfilled.');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user