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]);
$parents = [];
$children = [];
- $posts = Post::select(['uri-id', 'thr-parent-id'],
- ['parent-uri-id' => $parent['parent-uri-id'], 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT]], [], false);
+ $posts = Post::selectPosts(['uri-id', 'thr-parent-id'],
+ ['parent-uri-id' => $parent['parent-uri-id'], 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT]], []);
while ($post = Post::fetch($posts)) {
if ($post['uri-id'] == $post['thr-parent-id']) {
continue;
$statuses = ['ancestors' => [], 'descendants' => []];
- $ancestors = [];
- foreach (self::getParents($id, $parents) as $ancestor) {
- $ancestors[$ancestor] = DI::mstdnStatus()->createFromUriId($ancestor, $uid);
- }
+ $ancestors = self::getParents($id, $parents);
- ksort($ancestors);
- foreach ($ancestors as $ancestor) {
- $statuses['ancestors'][] = $ancestor;
- }
+ asort($ancestors);
- $descendants = [];
- foreach (self::getChildren($id, $children) as $descendant) {
- $descendants[] = DI::mstdnStatus()->createFromUriId($descendant, $uid);
+ foreach (array_slice($ancestors, 0, $request['limit']) as $ancestor) {
+ $statuses['ancestors'][] = DI::mstdnStatus()->createFromUriId($ancestor, $uid);;
}
- ksort($descendants);
- foreach ($descendants as $descendant) {
- $statuses['descendants'][] = $descendant;
+ $descendants = self::getChildren($id, $children);
+
+ asort($descendants);
+
+ foreach (array_slice($descendants, 0, $request['limit']) as $descendant) {
+ $statuses['descendants'][] = DI::mstdnStatus()->createFromUriId($descendant, $uid);
}
System::jsonExit($statuses);