diff --git a/app/Jobs/StatusPipeline/StatusActivityPubDeliver.php b/app/Jobs/StatusPipeline/StatusActivityPubDeliver.php index 081a1410f..466dbcd99 100644 --- a/app/Jobs/StatusPipeline/StatusActivityPubDeliver.php +++ b/app/Jobs/StatusPipeline/StatusActivityPubDeliver.php @@ -8,6 +8,10 @@ use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use League\Fractal; +use League\Fractal\Serializer\ArraySerializer; +use App\Transformer\ActivityPub\Verb\CreateNote; +use App\Util\ActivityPub\Helpers; class StatusActivityPubDeliver implements ShouldQueue { @@ -34,6 +38,18 @@ class StatusActivityPubDeliver implements ShouldQueue { $status = $this->status; + $audience = $status->profile->getAudienceInbox(); + $profile = $status->profile; + + $fractal = new Fractal\Manager(); + $fractal->setSerializer(new ArraySerializer()); + $resource = new Fractal\Resource\Item($status, new CreateNote()); + $activity = $fractal->createData($resource)->toArray(); + + foreach($audience as $url) { + Helpers::sendSignedObject($profile, $url, $activity); + } + // todo: fanout on write } }