]> git.mxchange.org Git - friendica.git/commitdiff
API: Lim it the elements for the context
authorMichael <heluecht@pirati.ca>
Wed, 2 Jun 2021 07:11:18 +0000 (07:11 +0000)
committerMichael <heluecht@pirati.ca>
Wed, 2 Jun 2021 07:11:18 +0000 (07:11 +0000)
src/Module/Api/Mastodon/Statuses/Context.php

index 345a473dbe2e3a379751e245c92f60f55652bd11..afa42f7b4048bf43ed32b87b761c2618d811ee3f 100644 (file)
@@ -44,6 +44,10 @@ class Context extends BaseApi
                        DI::mstdnError()->UnprocessableEntity();
                }
 
+               $request = self::getRequest([
+                       'limit'    => 40, // Maximum number of results to return. Defaults to 40.
+               ]);
+
                $id = $parameters['id'];
 
                $parent = Post::selectFirst(['parent-uri-id'], ['uri-id' => $id]);
@@ -70,22 +74,22 @@ class Context extends BaseApi
 
                $ancestors = [];
                foreach (self::getParents($id, $parents) as $ancestor) {
-                       $ancestors[$ancestor] = DI::mstdnStatus()->createFromUriId($ancestor, $uid);
+                       $ancestors[] = $ancestor;
                }
 
-               ksort($ancestors);
-               foreach ($ancestors as $ancestor) {
-                       $statuses['ancestors'][] = $ancestor;
+               asort($ancestors);
+               foreach (array_slice($ancestors, 0, $request['limit']) as $ancestor) {
+                       $statuses['ancestors'][] = DI::mstdnStatus()->createFromUriId($ancestor, $uid);;
                }
 
                $descendants = [];
                foreach (self::getChildren($id, $children) as $descendant) {
-                       $descendants[] = DI::mstdnStatus()->createFromUriId($descendant, $uid);
+                       $descendants[] = $descendant; 
                }
 
-               ksort($descendants);
-               foreach ($descendants as $descendant) {
-                       $statuses['descendants'][] = $descendant;
+               asort($descendants);
+               foreach (array_slice($descendants, 0, $request['limit']) as $descendant) {
+                       $statuses['descendants'][] = DI::mstdnStatus()->createFromUriId($descendant, $uid);
                }
 
                System::jsonExit($statuses);