fix(activity-pub): cache issues when navigating to activity stream urls

This commit is contained in:
Yassine Doghri 2021-05-28 17:04:54 +00:00
parent e5b7515023
commit 7bcbfb32f7
No known key found for this signature in database
GPG Key ID: 3E7F89498B960C9F
3 changed files with 24 additions and 7 deletions

View File

@ -48,7 +48,10 @@ class ActorController extends Controller
return $this->{$method}(...$params);
}
public function index(): RedirectResponse
/**
* @noRector ReturnTypeDeclarationRector
*/
public function index(): ResponseInterface
{
$actorObjectClass = $this->config->actorObject;
$actorObject = new $actorObjectClass($this->actor);
@ -60,6 +63,8 @@ class ActorController extends Controller
/**
* Handles incoming requests from fediverse servers
*
* @noRector ReturnTypeDeclarationRector
*/
public function inbox(): ResponseInterface
{
@ -228,7 +233,10 @@ class ActorController extends Controller
}
}
public function outbox(): RedirectResponse
/**
* @noRector ReturnTypeDeclarationRector
*/
public function outbox(): ResponseInterface
{
// get published activities by publication date
$actorActivity = model('ActivityModel')
@ -257,7 +265,10 @@ class ActorController extends Controller
->setBody($collection->toJSON());
}
public function followers(): RedirectResponse
/**
* @noRector ReturnTypeDeclarationRector
*/
public function followers(): ResponseInterface
{
// get followers for a specific actor
$followers = model('ActorModel')
@ -334,7 +345,10 @@ class ActorController extends Controller
);
}
public function activity(string $activityId): RedirectResponse
/**
* @noRector ReturnTypeDeclarationRector
*/
public function activity(string $activityId): ResponseInterface
{
if (
! ($activity = model('ActivityModel')->getActivityById($activityId))

View File

@ -33,7 +33,7 @@ class ObjectType extends AbstractObject
protected array $to = ['https://www.w3.org/ns/activitystreams#Public'];
/**
* @var string[]
* @var string[]|null
*/
protected array $cc = [];
protected ?array $cc = null;
}

View File

@ -84,7 +84,10 @@ class ActorModel extends Model
$domain = get_current_domain();
}
$cacheName = "actor-{$username}-{$domain}";
// remove colons for port if set
$cacheDomain = str_replace(':', '', $domain);
$cacheName = "actor-{$username}-{$cacheDomain}";
if (! ($found = cache($cacheName))) {
$found = $this->where([
'username' => $username,