Skip to content
Snippets Groups Projects

[Sprint/OldfashionedOwl](fix): Subscription feed upgrade #435

Merged Ben requested to merge fix/subscription-feed-435 into master
All threads resolved!
5 files
+ 153
77
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -26,78 +26,37 @@ class subscribe implements Interfaces\Api
@@ -26,78 +26,37 @@ class subscribe implements Interfaces\Api
*/
*/
public function get($pages)
public function get($pages)
{
{
 
$manager = new Subscriptions\Manager();
$response = [];
$response = [];
switch ($pages[0]) {
$guid = $pages[1] ?? Core\Session::getLoggedInUser()->guid;
case 'subscriptions':
$type = $pages[0] ?? "subscribers";
$db = new \Minds\Core\Data\Call('friends');
$limit = $_GET['limit'] ?? 12;
$subscribers= $db->getRow($pages[1], ['limit'=>get_input('limit', 12), 'offset'=>get_input('offset', '')]);
$offset = $_GET['offset'] ?? "";
if (!$subscribers) {
return Factory::response([]);
$opts = [
}
'guid'=>$guid,
$users = [];
'type'=>$type,
foreach ($subscribers as $guid => $subscriber) {
'limit'=>$limit,
if ($guid == get_input('offset')) {
'offset'=>$offset,
continue;
];
}
if (is_numeric($subscriber)) {
$users = $manager->getList($opts);
//this is a local, old style subscription
$users[] = new \Minds\Entities\User($guid);
if (!$users) {
continue;
return Factory::response([
}
'status' => 'error',
'message' => 'Unable to find '.$type,
$users[] = new \Minds\Entities\User(json_decode($subscriber, true));
]);
}
$users = array_values(array_filter($users, function ($user) {
return ($user->enabled != 'no' && $user->banned != 'yes');
}));
$response['users'] = factory::exportable($users);
$response['load-next'] = (string) end($users)->guid;
$response['load-previous'] = (string) key($users)->guid;
break;
case 'subscribers':
if ($pages[1] == "100000000000000519") {
break;
}
$db = new \Minds\Core\Data\Call('friendsof');
$subscribers= $db->getRow($pages[1], ['limit'=>get_input('limit', 12), 'offset'=>get_input('offset', '')]);
if (!$subscribers) {
return Factory::response([]);
}
$users = [];
if (get_input('offset') && key($subscribers) != get_input('offset')) {
$response['load-previous'] = (string) get_input('offset');
} else {
foreach ($subscribers as $guid => $subscriber) {
if ($guid == get_input('offset')) {
unset($subscribers[$guid]);
continue;
}
if (is_numeric($subscriber)) {
//this is a local, old style subscription
$users[] = new \Minds\Entities\User($guid);
continue;
}
//var_dump(print_r($users,true));die();
$users[] = new \Minds\Entities\User(json_decode($subscriber, true));
}
$users = array_values(array_filter($users, function ($user) {
return ($user->enabled != 'no' && $user->banned != 'yes')
&& $user->guid && $user->username;
}));
$response['users'] = factory::exportable($users);
$response['load-next'] = (string) end($users)->guid;
$response['load-previous'] = (string) key($users)->guid;
}
break;
}
}
 
$pagingToken = (string) $users->getPagingToken();
 
 
$users = array_filter(Factory::exportable($users->toArray()), function ($user) {
 
return ($user->enabled != 'no' && $user->banned != 'yes');
 
});
 
 
$response['users'] = $users;
 
$response['load-next'] = $pagingToken;
return Factory::response($response);
return Factory::response($response);
}
}
Loading