diff --git a/app/Jobs/FollowPipeline/FollowActivityPubDeliver.php b/app/Jobs/FollowPipeline/FollowActivityPubDeliver.php new file mode 100644 index 000000000..863b2881d --- /dev/null +++ b/app/Jobs/FollowPipeline/FollowActivityPubDeliver.php @@ -0,0 +1,57 @@ +followRequest = $followRequest; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $follow = $this->followRequest; + $actor = $follow->actor; + $target = $follow->target; + + if($target->domain == null || $target->inbox_url == null) { + return; + } + + $fractal = new Fractal\Manager(); + $fractal->setSerializer(new ArraySerializer()); + $resource = new Fractal\Resource\Item($follow, new Follow()); + $activity = $fractal->createData($resource)->toArray(); + $url = $target->sharedInbox ?? $target->inbox_url; + + Helpers::sendSignedObject($actor, $url, $activity); + } +}