Merge pull request #12304 from HankG/add-dismissed-field-to-mastodon-notifications

Add dismissed field to mastodon notifications
This commit is contained in:
Hypolite Petovan 2022-11-30 14:55:09 -05:00 committed by GitHub
commit 1b0f7e5add
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 3 deletions

View File

@ -70,7 +70,7 @@ class Notification extends BaseFactory
$status = null;
}
return new MstdnNotification($Notification->id, $type, $Notification->created, $account, $status);
return new MstdnNotification($Notification->id, $type, $Notification->created, $account, $status, $Notification->dismissed);
}
/**

View File

@ -63,12 +63,16 @@ class Notifications extends BaseApi
'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, // Pleroma extension: return activities by muted (not by blocked!) users.
'count' => 0, // Unknown parameter
'count' => 0,
'include_all' => false // Include dismissed and undismissed
], $request);
$params = ['order' => ['id' => true]];
$condition = ['uid' => $uid, 'dismissed' => false];
if ($request['include_all']) {
$condition = ['uid' => $uid];
}
if (!empty($request['account_id'])) {
$contact = Contact::getById($request['account_id'], ['url']);

View File

@ -56,6 +56,8 @@ class Notification extends BaseDataTransferObject
protected $type;
/** @var string (Datetime) */
protected $created_at;
/** @var bool */
protected $dismissed;
/** @var Account */
protected $account;
/** @var Status|null */
@ -66,12 +68,13 @@ class Notification extends BaseDataTransferObject
*
* @throws HttpException\InternalServerErrorException|Exception
*/
public function __construct(int $id, string $type, \DateTime $created_at, Account $account = null, Status $status = null)
public function __construct(int $id, string $type, \DateTime $created_at, Account $account = null, Status $status = null, bool $dismissed = false)
{
$this->id = (string)$id;
$this->type = $type;
$this->created_at = $created_at->format(DateTimeFormat::JSON);
$this->account = $account->toArray();
$this->dismissed = $dismissed;
if (!empty($status)) {
$this->status = $status->toArray();