use Friendica\Module\BaseApi;
use Friendica\Protocol\ActivityPub;
use Friendica\Util\HTTPSignature;
+use Friendica\Util\Network;
/**
* ActivityPub Outbox
$page = 1;
}
- $requester = HTTPSignature::getSigner('', $_SERVER);
- $outbox = ActivityPub\Transmitter::getOutbox($owner, $uid, $page, $request['max_id'] ?? null, $requester);
+ $outbox = ActivityPub\ClientToServer::getOutbox($owner, $uid, $page, $request['max_id'] ?? null, HTTPSignature::getSigner('', $_SERVER));
- System::jsonExit($outbox, 'application/activity+json');
+ $this->jsonExit($outbox, 'application/activity+json');
+ }
+
+ protected function post(array $request = [])
+ {
+ $this->checkAllowedScope(self::SCOPE_WRITE);
+ $uid = self::getCurrentUserID();
+ $postdata = Network::postdata();
+
+ if (empty($postdata) || empty($this->parameters['nickname'])) {
+ throw new \Friendica\Network\HTTPException\BadRequestException();
+ }
+
+ $owner = User::getOwnerDataByNick($this->parameters['nickname']);
+ if (empty($owner)) {
+ throw new \Friendica\Network\HTTPException\NotFoundException();
+ }
+ if ($owner['uid'] != $uid) {
+ throw new \Friendica\Network\HTTPException\ForbiddenException();
+ }
+
+ $activity = json_decode($postdata, true);
+ if (empty($activity)) {
+ throw new \Friendica\Network\HTTPException\BadRequestException();
+ }
+
+ $this->jsonExit(ActivityPub\ClientToServer::processActivity($activity, $uid, self::getCurrentApplication() ?? []));
}
}