minor return-type fixes for orderedCollections

- fixed issue where followers, following and outbox didn't properly return OrderedCollection-type if requested without page-param (without page param, they return OrderedCollection, with page-param they return OrderedCollectionPage).
This commit is contained in:
Yannis Vogel 2025-06-09 11:33:33 +02:00
parent 9b3ae63c7e
commit 207d876254
No known key found for this signature in database
5 changed files with 11 additions and 4 deletions

View file

@ -101,6 +101,8 @@ class Followers implements \Federator\Api\FedUsers\FedUsersInterface
}
$followers->setFirst($baseUrl . '?page=0');
$followers->setLast($baseUrl . '?page=' . $lastPage);
} else {
$followers->setType('OrderedCollection');
}
$obj = $followers->toObject();

View file

@ -101,6 +101,8 @@ class Following implements \Federator\Api\FedUsers\FedUsersInterface
}
$following->setFirst($baseUrl . '?page=0');
$following->setLast($baseUrl . '?page=' . $lastPage);
} else {
$following->setType('OrderedCollection');
}
$obj = $following->toObject();

View file

@ -72,6 +72,8 @@ class Outbox implements \Federator\Api\FedUsers\FedUsersInterface
$outbox->setID($id);
if ($page !== '') {
$id .= '?page=' . urlencode($page);
} else {
$outbox->setType('OrderedCollection');
}
if ($page === '' || $outbox->count() == 0) {
$outbox->setFirst($id . '?page=0');

View file

@ -19,6 +19,7 @@ class OrderedCollectionPage extends OrderedCollection
{
parent::__construct();
parent::addContext('https://www.w3.org/ns/activitystreams');
$this->setType('OrderedCollectionPage');
}
/**
@ -38,7 +39,7 @@ class OrderedCollectionPage extends OrderedCollection
if ($this->partOf !== '') {
$return['partOf'] = $this->partOf;
}
$return['type'] = 'OrderedCollectionPage';
$return['type'] = $this->getType();
return $return;
}

View file

@ -66,7 +66,7 @@ class ContentNation implements Connector
[$response, $info] = \Federator\Main::getFromRemote($remoteURL, []);
if ($info['http_code'] != 200) {
print_r($info);
error_log("ContentNation::getRemoteFollowersOfUser error retrieving followers for userId: $userId . Error: " . json_encode($info));
return false;
}
$r = json_decode($response, true);
@ -94,7 +94,7 @@ class ContentNation implements Connector
[$response, $info] = \Federator\Main::getFromRemote($remoteURL, []);
if ($info['http_code'] != 200) {
print_r($info);
error_log("ContentNation::getRemoteFollowingForUser error retrieving following for userId: $userId . Error: " . json_encode($info));
return false;
}
$r = json_decode($response, true);
@ -127,7 +127,7 @@ class ContentNation implements Connector
}
[$response, $info] = \Federator\Main::getFromRemote($remoteURL, []);
if ($info['http_code'] != 200) {
print_r($info);
error_log("ContentNation::getRemotePostsByUser error retrieving activities for userId: $userId . Error: " . json_encode($info));
return false;
}
$r = json_decode($response, true);