|
@@ -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;
|
|
|
}
|
|
|
|
|
|
}
|