Merge pull request #10360 from annando/limit-context

API: Limit the elements for the context
This commit is contained in:
Hypolite Petovan 2021-06-02 07:13:39 -04:00 committed by GitHub
commit b47ae829f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

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