]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Api/Twitter/Favorites.php
Merge pull request #12921 from HankG/add-visibility-data-to-mastodon-status
[friendica.git] / src / Module / Api / Twitter / Favorites.php
index 62b86c21e839fa93e58514c052fe2b8bb1b1a19a..6e63cc63e81a47e148c4f095f8e48faa21784e86 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -23,6 +23,7 @@ namespace Friendica\Module\Api\Twitter;
 
 use Friendica\Core\Logger;
 use Friendica\Database\DBA;
+use Friendica\Model\Item;
 use Friendica\Module\BaseApi;
 use Friendica\DI;
 use Friendica\Model\Contact;
@@ -35,43 +36,42 @@ use Friendica\Model\Post;
  */
 class Favorites extends BaseApi
 {
-       public function rawContent()
+       protected function rawContent(array $request = [])
        {
                BaseApi::checkAllowedScope(BaseApi::SCOPE_READ);
                $uid = BaseApi::getCurrentUserID();
-       
+
                // in friendica starred item are private
                // return favorites only for self
-               Logger::info(API_LOG_PREFIX . 'for {self}', ['module' => 'api', 'action' => 'favorites']);
-       
+               Logger::info(BaseApi::LOG_PREFIX . 'for {self}', ['module' => 'api', 'action' => 'favorites']);
+
                // params
-               $since_id = $_REQUEST['since_id'] ?? 0;
-               $max_id = $_REQUEST['max_id'] ?? 0;
-               $count = $_GET['count'] ?? 20;
-               $page = $_REQUEST['page'] ?? 1;
-       
+               $count            = $this->getRequestValue($request, 'count', 20, 1, 100);
+               $page             = $this->getRequestValue($request, 'page', 1, 1);
+               $since_id         = $this->getRequestValue($request, 'since_id', 0, 0);
+               $max_id           = $this->getRequestValue($request, 'max_id', 0, 0);
+               $include_entities = $this->getRequestValue($request, 'include_entities', false);
+
                $start = max(0, ($page - 1) * $count);
-       
-               $condition = ["`uid` = ? AND `gravity` IN (?, ?) AND `id` > ? AND `starred`",
-                       $uid, GRAVITY_PARENT, GRAVITY_COMMENT, $since_id];
-       
-               $params = ['order' => ['id' => true], 'limit' => [$start, $count]];
-       
+
+               $condition = ["`uid` = ? AND `gravity` IN (?, ?) AND `uri-id` > ? AND `starred`",
+                       $uid, Item::GRAVITY_PARENT, Item::GRAVITY_COMMENT, $since_id];
+
+               $params = ['order' => ['uri-id' => true], 'limit' => [$start, $count]];
+
                if ($max_id > 0) {
-                       $condition[0] .= " AND `id` <= ?";
+                       $condition[0] .= " AND `uri-id` <= ?";
                        $condition[] = $max_id;
                }
-       
+
                $statuses = Post::selectForUser($uid, [], $condition, $params);
-       
-               $include_entities = strtolower(($_REQUEST['include_entities'] ?? 'false') == 'true');
-       
+
                $ret = [];
                while ($status = DBA::fetch($statuses)) {
                        $ret[] = DI::twitterStatus()->createFromUriId($status['uri-id'], $status['uid'], $include_entities)->toArray();
                }
                DBA::close($statuses);
-       
-               DI::apiResponse()->exit('statuses', ['status' => $ret], $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
+
+               $this->response->exit('statuses', ['status' => $ret], $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid));
        }
 }