. // }}} namespace Plugin\ActivityPub\Controller; use App\Core\Controller; use App\Core\DB\DB; use function App\Core\I18n\_m; use App\Util\Exception\ClientException; use Plugin\ActivityPub\ActivityPub; use Plugin\ActivityStreamsTwo\Util\Model\AS2ToEntity\AS2ToEntity; use Plugin\ActivityStreamsTwo\Util\Response\TypeResponse; use Plugin\ActivityStreamsTwo\Util\Type; use Plugin\ActivityStreamsTwo\Util\Type\Util; class Inbox extends Controller { /** * Inbox handler */ public function handle(int $gsactor_id) { $user = DB::find('local_user', ['id' => $gsactor_id]); if (is_null($user)) { throw new ClientException(_m('No such actor.'), 404); } // Check accept header ActivityPub::validateAcceptHeader( $this->request->headers->get('accept'), true ); // Check current actor can post // Get content $payload = Util::decodeJson( (string) $this->request->getContent() ); // Cast as an ActivityStreams type $type = Type::create($payload); dd(AS2ToEntity::translate($type->toArray()['object'])); // $http_signature = new HttpSignature($this->server); // if ($http_signature->verify($request)) { // return new Response('', 201); // } return new TypeResponse($type, status: 202); } }