gnu-social/plugins/Favorite/lib/favcommand.php
Mikael Nordfeldth aca5ff1b23 Found some unreachable code in Favorite
The portion after StartAtomPubNewActivity would never be reached since
Favorite handles that activity through ActivityHandlerPlugin nowadays.
So I cleaned it up and followed a couple of paths, making stuff prettier.
2015-01-12 02:23:23 +01:00

52 lines
1.5 KiB
PHP

<?php
class FavCommand extends Command
{
var $other = null;
function __construct($user, $other)
{
parent::__construct($user);
$this->other = $other;
}
function handle($channel)
{
$notice = $this->getNotice($this->other);
$fave = new Fave();
$fave->user_id = $this->user->id;
$fave->notice_id = $notice->id;
$fave->find();
if ($fave->fetch()) {
// TRANS: Error message text shown when a favorite could not be set because it has already been favorited.
$channel->error($this->user, _('Could not create favorite: Already favorited.'));
return;
}
try {
$fave = Fave::addNew($this->user->getProfile(), $notice);
} catch (Exception $e) {
$channel->error($this->user, $e->getMessage());
return;
}
// @fixme favorite notification should be triggered
// at a lower level
$other = User::getKV('id', $notice->profile_id);
if ($other && $other->id != $this->user->id && !empty($other->email)) {
require_once INSTALLDIR.'/lib/mail.php';
mail_notify_fave($other, $this->user->getProfile(), $notice);
}
Fave::blowCacheForProfileId($this->user->id);
// TRANS: Text shown when a notice has been marked as favourite successfully.
$channel->output($this->user, _('Notice marked as fave.'));
}
}