31 lines
783 B
PHP
Executable File
31 lines
783 B
PHP
Executable File
<?php
|
|
|
|
namespace Common\Workspaces\Actions;
|
|
|
|
use App\Models\User;
|
|
use Common\Workspaces\Notifications\WorkspaceInvitation;
|
|
use Common\Workspaces\WorkspaceInvite;
|
|
use Illuminate\Notifications\DatabaseNotification;
|
|
|
|
class DeleteInviteNotification
|
|
{
|
|
public function execute(WorkspaceInvite $invite, User $user): void
|
|
{
|
|
$notifications = $user
|
|
->notifications()
|
|
->where('type', WorkspaceInvitation::class)
|
|
->limit(20)
|
|
->get();
|
|
|
|
$notification = $notifications->first(function (
|
|
DatabaseNotification $notification,
|
|
) use ($invite) {
|
|
return $notification->data['inviteId'] === $invite->id;
|
|
});
|
|
|
|
if ($notification) {
|
|
$notification->delete();
|
|
}
|
|
}
|
|
}
|