Merge pull request #12791 from HankG/mastodon-notifications-api-fixes
Mastodon notifications api fixes
This commit is contained in:
commit
d3acdd3229
|
@ -63,15 +63,17 @@ class Notifications extends BaseApi
|
||||||
'exclude_types' => [], // Array of types to exclude (follow, favourite, reblog, mention, poll, follow_request)
|
'exclude_types' => [], // Array of types to exclude (follow, favourite, reblog, mention, poll, follow_request)
|
||||||
'account_id' => 0, // Return only notifications received from this account
|
'account_id' => 0, // Return only notifications received from this account
|
||||||
'with_muted' => false, // Pleroma extension: return activities by muted (not by blocked!) users.
|
'with_muted' => false, // Pleroma extension: return activities by muted (not by blocked!) users.
|
||||||
'count' => 0,
|
|
||||||
'include_all' => false // Include dismissed and undismissed
|
'include_all' => false // Include dismissed and undismissed
|
||||||
], $request);
|
], $request);
|
||||||
|
|
||||||
$params = ['order' => ['id' => true]];
|
$params = ['order' => ['id' => true]];
|
||||||
|
|
||||||
$condition = ['uid' => $uid, 'dismissed' => false];
|
$condition = ["`uid` = ? AND (NOT `type` IN (?, ?))", $uid,
|
||||||
if ($request['include_all']) {
|
Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION,
|
||||||
$condition = ['uid' => $uid];
|
POST\UserNotification::TYPE_COMMENT_PARTICIPATION];
|
||||||
|
|
||||||
|
if (!$request['include_all']) {
|
||||||
|
$condition = DBA::mergeConditions($condition, ['dismissed' => false]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($request['account_id'])) {
|
if (!empty($request['account_id'])) {
|
||||||
|
@ -82,15 +84,21 @@ class Notifications extends BaseApi
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array(Notification::TYPE_INTRODUCTION, $request['exclude_types'])) {
|
if (in_array(Notification::TYPE_INTRODUCTION, $request['exclude_types'])) {
|
||||||
$condition = DBA::mergeConditions($condition,
|
$condition = DBA::mergeConditions(
|
||||||
|
$condition,
|
||||||
["(`vid` != ? OR `type` != ? OR NOT `actor-id` IN (SELECT `id` FROM `contact` WHERE `pending`))",
|
["(`vid` != ? OR `type` != ? OR NOT `actor-id` IN (SELECT `id` FROM `contact` WHERE `pending`))",
|
||||||
Verb::getID(Activity::FOLLOW), Post\UserNotification::TYPE_NONE]);
|
Verb::getID(Activity::FOLLOW),
|
||||||
|
Post\UserNotification::TYPE_NONE]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array(Notification::TYPE_FOLLOW, $request['exclude_types'])) {
|
if (in_array(Notification::TYPE_FOLLOW, $request['exclude_types'])) {
|
||||||
$condition = DBA::mergeConditions($condition,
|
$condition = DBA::mergeConditions(
|
||||||
|
$condition,
|
||||||
["(`vid` != ? OR `type` != ? OR NOT `actor-id` IN (SELECT `id` FROM `contact` WHERE NOT `pending`))",
|
["(`vid` != ? OR `type` != ? OR NOT `actor-id` IN (SELECT `id` FROM `contact` WHERE NOT `pending`))",
|
||||||
Verb::getID(Activity::FOLLOW), Post\UserNotification::TYPE_NONE]);
|
Verb::getID(Activity::FOLLOW),
|
||||||
|
Post\UserNotification::TYPE_NONE]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array(Notification::TYPE_LIKE, $request['exclude_types'])) {
|
if (in_array(Notification::TYPE_LIKE, $request['exclude_types'])) {
|
||||||
|
@ -132,7 +140,7 @@ class Notifications extends BaseApi
|
||||||
$request['limit']
|
$request['limit']
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach($Notifications as $Notification) {
|
foreach ($Notifications as $Notification) {
|
||||||
try {
|
try {
|
||||||
$mstdnNotifications[] = DI::mstdnNotification()->createFromNotification($Notification, self::appSupportsQuotes());
|
$mstdnNotifications[] = DI::mstdnNotification()->createFromNotification($Notification, self::appSupportsQuotes());
|
||||||
self::setBoundaries($Notification->id);
|
self::setBoundaries($Notification->id);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user