]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Starred.php
show pinned items
[friendica.git] / src / Module / Starred.php
index 70cd3973518a81584604b2ef68439701a5fcfb7e..c1fa4c3b8be318df533003a9c581d0ee24da8540 100644 (file)
@@ -10,51 +10,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 = $_REQUEST['return'] ?? '';
-               if ($returnPath) {
-                       $rand = '_=' . time();
-                       if (strpos($returnPath, '?')) {
-                               $rand = "&$rand";
-                       } else {
-                               $rand = "?$rand";
-                       }
-
-                       $a->internalRedirect($returnPath . $rand);
+               if (!empty($returnPath)) {
+                       $rand = '_=' . time() . (strpos($returnPath, '?') ? '&' : '?') . 'rand';
+                       self::getApp()->internalRedirect($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();
        }
 }