1
0
Fork 0
forked from mirror/pixelfed

Update ActivityPub Inbox

This commit is contained in:
Daniel Supernault 2019-02-24 20:07:43 -07:00
parent 8d3acc0101
commit 2078bb10c9
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -248,7 +248,28 @@ class Inbox
public function handleAcceptActivity()
{
$actor = $this->payload['actor'];
$obj = $this->payload['object'];
switch ($obj['type']) {
case 'Follow':
$accept = [
'@context' => 'https://www.w3.org/ns/activitystreams',
'id' => $target->permalink().'#accepts/follows/' . $follower->id,
'type' => 'Accept',
'actor' => $target->permalink(),
'object' => [
'id' => $actor->permalink('#follows/'.$target->id),
'type' => 'Follow',
'actor' => $actor->permalink(),
'object' => $target->permalink()
]
];
break;
default:
# code...
break;
}
}
public function handleDeleteActivity()
@ -298,11 +319,7 @@ class Inbox
$obj = $this->payload['object'];
switch ($obj['type']) {
case 'Like':
$status = Helpers::statusFirstOrFetch($obj['object']);
Like::whereProfileId($profile->id)
->whereStatusId($status->id)
->forceDelete();
case 'Accept':
break;
case 'Announce':
@ -318,6 +335,29 @@ class Inbox
->forceDelete();
$status->forceDelete();
break;
case 'Block':
break;
case 'Follow':
$following = self::actorFirstOrCreate($obj['object']);
Follower::whereProfileId($profile->id)
->whereFollowingId($following->id)
->delete();
break;
case 'Like':
$status = Helpers::statusFirstOrFetch($obj['object']);
Like::whereProfileId($profile->id)
->whereStatusId($status->id)
->forceDelete();
Notification::whereProfileId($status->profile->id)
->whereActorId($profile->id)
->whereAction('like')
->whereItemId($status->id)
->whereItemType('App\Status')
->forceDelete();
break;
}
}