|
@@ -307,11 +307,8 @@ class Inbox
|
|
|
$id = $this->payload['object']['id'];
|
|
|
switch ($type) {
|
|
|
case 'Person':
|
|
|
- $profile = Profile::whereNull('domain')
|
|
|
- ->whereNull('private_key')
|
|
|
- ->whereRemoteUrl($id)
|
|
|
- ->first();
|
|
|
- if(!$profile) {
|
|
|
+ $profile = Helpers::fetchProfile($actor);
|
|
|
+ if(!$profile || $profile->private_key != null) {
|
|
|
return;
|
|
|
}
|
|
|
Notification::whereActorId($profile->id)->delete();
|
|
@@ -326,11 +323,18 @@ class Inbox
|
|
|
break;
|
|
|
|
|
|
case 'Tombstone':
|
|
|
- $status = Status::whereUri($id)->orWhere('object_url', $id)->first();
|
|
|
+ $profile = Helpers::fetchProfile($actor);
|
|
|
+ $status = Status::whereProfileId($profile->id)
|
|
|
+ ->whereUri($id)
|
|
|
+ ->orWhereUrl($id)
|
|
|
+ ->orWhere('object_url', $id)
|
|
|
+ ->first();
|
|
|
if(!$status) {
|
|
|
return;
|
|
|
}
|
|
|
- $status->media->delete();
|
|
|
+ $status->media()->delete();
|
|
|
+ $status->likes()->delete();
|
|
|
+ $status->shares()->delete();
|
|
|
$status->delete();
|
|
|
return;
|
|
|
break;
|