X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FStarred.php;h=0f111b21e0198f51185aef8b650044d37837bd0d;hb=6cbfa5b862ce7a241fd4339129749f87dc19760c;hp=df7da40992ddd88ee6bc989a1590a308298d922c;hpb=a758671a1bb942ce1aaf54a59e084deb0dec13c6;p=friendica.git diff --git a/src/Module/Starred.php b/src/Module/Starred.php index df7da40992..0f111b21e0 100644 --- a/src/Module/Starred.php +++ b/src/Module/Starred.php @@ -3,6 +3,7 @@ namespace Friendica\Module; use Friendica\BaseModule; +use Friendica\DI; use Friendica\Model\Item; /** @@ -10,51 +11,36 @@ use Friendica\Model\Item; */ class Starred extends BaseModule { - public static function rawContent() + public static function rawContent(array $parameters = []) { - $a = self::getApp(); - $starred = 0; - $itemId = null; - if (!local_user()) { - exit(); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } - // @TODO: Replace with parameter from router - if ($a->argc > 1) { - $itemId = intval($a->argv[1]); + if (empty($parameters['item'])) { + throw new \Friendica\Network\HTTPException\BadRequestException(); } - if (!$itemId) { - exit(); - } + $itemId = intval($parameters['item']); $item = Item::selectFirstForUser(local_user(), ['starred'], ['uid' => local_user(), 'id' => $itemId]); if (empty($item)) { - exit(); + throw new \Friendica\Network\HTTPException\NotFoundException(); } - if (!intval($item['starred'])) { - $starred = 1; - } + $starred = !(bool)$item['starred']; Item::update(['starred' => $starred], ['id' => $itemId]); // See if we've been passed a return path to redirect to - $returnPath = defaults($_REQUEST, 'return', ''); - if ($returnPath) { - $rand = '_=' . time(); - if (strpos($returnPath, '?')) { - $rand = "&$rand"; - } else { - $rand = "?$rand"; - } - - $a->internalRedirect($returnPath . $rand); + $returnPath = $_REQUEST['return'] ?? ''; + if (!empty($returnPath)) { + $rand = '_=' . time() . (strpos($returnPath, '?') ? '&' : '?') . 'rand'; + DI::baseUrl()->redirect($returnPath . $rand); } // the json doesn't really matter, it will either be 0 or 1 - echo json_encode($starred); + echo json_encode((int)$starred); exit(); } }