castopod/app/Entities/Actor.php
Yassine Doghri 2d297f45b3
feat: add cache to ActivityPub sql queries + cache activity and note pages
- authenticated pages are not cached
- add AnalyticsTrait to register a podcast webpage hit across
mutliple controllers
- set actor_id as unique in podcasts table
- fix issues with preview card not appearing
- update codeigniter4-uuid
2021-05-03 15:32:54 +00:00

47 lines
899 B
PHP

<?php
/**
* @copyright 2020 Podlibre
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
namespace App\Entities;
use App\Models\PodcastModel;
class Actor extends \ActivityPub\Entities\Actor
{
/**
* @var App\Entities\Podcast|null
*/
protected $podcast;
/**
* @var boolean
*/
protected $is_podcast;
public function getIsPodcast()
{
return !empty($this->podcast);
}
public function getPodcast()
{
if (empty($this->id)) {
throw new \RuntimeException(
'Actor must be created before getting associated podcast.',
);
}
if (empty($this->podcast)) {
$this->podcast = (new PodcastModel())->getPodcastByActorId(
$this->id,
);
}
return $this->podcast;
}
}