]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Pinned.php
Some more avatar function replacements
[friendica.git] / src / Module / Pinned.php
index 590bda159ea69ab4d290180ac5e87341a98f1251..97364ceffbc147b9bfecb54f7ff3665346591ff4 100644 (file)
@@ -1,8 +1,28 @@
 <?php
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica\Module;
 
 use Friendica\BaseModule;
+use Friendica\DI;
 use Friendica\Model\Item;
 
 /**
@@ -10,51 +30,31 @@ use Friendica\Model\Item;
  */
 class Pinned extends BaseModule
 {
-       public static function rawContent($parameters)
+       public static function rawContent(array $parameters = [])
        {
-               $a = self::getApp();
-               $pinned = 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(), ['pinned'], ['uid' => local_user(), 'id' => $itemId]);
-               if (empty($item)) {
-                       exit();
-               }
-
-               if (!intval($item['pinned'])) {
-                       $pinned = 1;
-               }
+               $pinned = !Item::getPinned($itemId, local_user());
 
-               Item::update(['pinned' => $pinned], ['id' => $itemId]);
+               Item::setPinned($itemId, local_user(), $pinned);
 
                // 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';
+                       DI::baseUrl()->redirect($returnPath . $rand);
                }
 
                // the json doesn't really matter, it will either be 0 or 1
-               echo json_encode($pinned);
+               echo json_encode((int)$pinned);
                exit();
        }
 }