mirror of
https://github.com/friendica/friendica
synced 2025-04-24 11:10:18 +00:00
API: Reworked request parameter handling
This commit is contained in:
parent
dbd349b92e
commit
e5c1b90668
16 changed files with 233 additions and 265 deletions
|
@ -50,64 +50,51 @@ class Notifications extends BaseApi
|
|||
System::jsonExit(DI::mstdnNotification()->createFromNotifyId($id));
|
||||
}
|
||||
|
||||
$request = self::getRequest(['max_id' => 0, 'since_id' => 0, 'min_id' => 0, 'limit' => 20,
|
||||
'exclude_types' => [], 'account_id' => 0, 'with_muted' => false]);
|
||||
$request = self::getRequest([
|
||||
'max_id' => 0, // Return results older than this ID
|
||||
'since_id' => 0, // Return results newer than this ID
|
||||
'min_id' => 0, // Return results immediately newer than this ID
|
||||
'limit' => 20, // Maximum number of results to return (default 20)
|
||||
'exclude_types' => [], // Array of types to exclude (follow, favourite, reblog, mention, poll, follow_request)
|
||||
'account_id' => 0, // Return only notifications received from this account
|
||||
'with_muted' => false, // Unknown parameter
|
||||
'count' => 0, // Unknown parameter
|
||||
]);
|
||||
|
||||
// Return results older than this ID
|
||||
$max_id = $request['max_id'];
|
||||
|
||||
// Return results newer than this ID
|
||||
$since_id = $request['since_id'];
|
||||
|
||||
// Return results immediately newer than this ID
|
||||
$min_id = $request['min_id'];
|
||||
|
||||
// Maximum number of results to return (default 20)
|
||||
$limit = $request['limit'];
|
||||
|
||||
// Array of types to exclude (follow, favourite, reblog, mention, poll, follow_request)
|
||||
$exclude_types = $request['exclude_types'];
|
||||
|
||||
// Return only notifications received from this account
|
||||
$account_id = $request['account_id'];
|
||||
|
||||
// Unknown parameter
|
||||
$with_muted = $request['with_muted'];
|
||||
|
||||
$params = ['order' => ['id' => true], 'limit' => $limit];
|
||||
$params = ['order' => ['id' => true], 'limit' => $request['limit']];
|
||||
|
||||
$condition = ['uid' => $uid, 'seen' => false, 'type' => []];
|
||||
|
||||
if (!empty($account_id)) {
|
||||
$contact = Contact::getById($account_id, ['url']);
|
||||
if (!empty($request['account_id'])) {
|
||||
$contact = Contact::getById($request['account_id'], ['url']);
|
||||
if (!empty($contact['url'])) {
|
||||
$condition['url'] = $contact['url'];
|
||||
}
|
||||
}
|
||||
|
||||
if (!in_array('follow_request', $exclude_types)) {
|
||||
if (!in_array('follow_request', $request['exclude_types'])) {
|
||||
$condition['type'] = array_merge($condition['type'], [Notification\Type::INTRO]);
|
||||
}
|
||||
|
||||
if (!in_array('mention', $exclude_types)) {
|
||||
if (!in_array('mention', $request['exclude_types'])) {
|
||||
$condition['type'] = array_merge($condition['type'],
|
||||
[Notification\Type::WALL, Notification\Type::COMMENT, Notification\Type::MAIL, Notification\Type::TAG_SELF, Notification\Type::POKE]);
|
||||
}
|
||||
|
||||
if (!in_array('status', $exclude_types)) {
|
||||
if (!in_array('status', $request['exclude_types'])) {
|
||||
$condition['type'] = array_merge($condition['type'], [Notification\Type::SHARE]);
|
||||
}
|
||||
|
||||
if (!empty($max_id)) {
|
||||
$condition = DBA::mergeConditions($condition, ["`id` < ?", $max_id]);
|
||||
if (!empty($request['max_id'])) {
|
||||
$condition = DBA::mergeConditions($condition, ["`id` < ?", $request['max_id']]);
|
||||
}
|
||||
|
||||
if (!empty($since_id)) {
|
||||
$condition = DBA::mergeConditions($condition, ["`id` > ?", $since_id]);
|
||||
if (!empty($request['since_id'])) {
|
||||
$condition = DBA::mergeConditions($condition, ["`id` > ?", $request['since_id']]);
|
||||
}
|
||||
|
||||
if (!empty($min_id)) {
|
||||
$condition = DBA::mergeConditions($condition, ["`id` > ?", $min_id]);
|
||||
if (!empty($request['min_id'])) {
|
||||
$condition = DBA::mergeConditions($condition, ["`id` > ?", $request['min_id']]);
|
||||
|
||||
$params['order'] = ['id'];
|
||||
}
|
||||
|
@ -119,7 +106,7 @@ class Notifications extends BaseApi
|
|||
$notifications[] = DI::mstdnNotification()->createFromNotifyId($notification['id']);
|
||||
}
|
||||
|
||||
if (!empty($min_id)) {
|
||||
if (!empty($request['min_id'])) {
|
||||
array_reverse($notifications);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue