diff options
| author | winter | 2025-03-31 21:29:22 +0100 |
|---|---|---|
| committer | winter | 2025-03-31 21:29:22 +0100 |
| commit | a9f0003e809d46093e783d2079be7a952b5f5e0d (patch) | |
| tree | 154cb0ad413756a265baebeee45a868d3ed79879 /Digitigrade/Model/FetchableModel.php | |
| parent | 8c3f045ed44bcb27189a605a4b86e5db22fee4d6 (diff) | |
implement backfilling for newly discovered actors
Diffstat (limited to 'Digitigrade/Model/FetchableModel.php')
| -rw-r--r-- | Digitigrade/Model/FetchableModel.php | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Digitigrade/Model/FetchableModel.php b/Digitigrade/Model/FetchableModel.php index c6bc291..fff7aeb 100644 --- a/Digitigrade/Model/FetchableModel.php +++ b/Digitigrade/Model/FetchableModel.php @@ -85,6 +85,14 @@ abstract class FetchableModel extends Model implements RemoteFetchable { if (!$obj->validate() || !PolicyManager::getInstance()->check($obj)) { return null; // and don't save } + + if (isset($obj->uri)) { + $isNew = $obj::countWhere('uri = ?', [$obj->uri]) == 0; + if ($isNew) { + $obj->onNewlyDiscovered(); + } + } + if ($autoSave) { $obj->save(); $obj->finaliseAfterSave(); @@ -99,6 +107,9 @@ abstract class FetchableModel extends Model implements RemoteFetchable { protected function finaliseAfterSave() { } + protected function onNewlyDiscovered() { + } + public static function findByUri(string $uri, bool $autoSave = true, bool $forceRefetch = false): ?static { if (!$forceRefetch) { $obj = static::findWhere('uri = ?', [$uri]); |
