diff options
| author | winter | 2024-12-17 23:05:43 +0000 |
|---|---|---|
| committer | winter | 2024-12-17 23:05:43 +0000 |
| commit | 6f844ff40d936fb6591c2469dd9ff922bc4e575f (patch) | |
| tree | 007dc0372c2c999bdcf6ea1ba80f6eb93a161a7f /Digitigrade/Model/FetchableModel.php | |
| parent | 801778a295df2b026391483faa390cf87e68b1ad (diff) | |
implement interactions
Diffstat (limited to 'Digitigrade/Model/FetchableModel.php')
| -rw-r--r-- | Digitigrade/Model/FetchableModel.php | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Digitigrade/Model/FetchableModel.php b/Digitigrade/Model/FetchableModel.php index 33e1151..1120823 100644 --- a/Digitigrade/Model/FetchableModel.php +++ b/Digitigrade/Model/FetchableModel.php @@ -13,7 +13,7 @@ abstract class FetchableModel extends Model implements RemoteFetchable { self::$mapper->bStrictObjectTypeChecking = false; } - protected static function createFromJson(\stdClass $data, bool $autoSave): static { + protected static function createFromJson(\stdClass $data, bool $autoSave, ?string $uri = null): static { // default everything nullable to null $obj = new static(); $reflProps = (new \ReflectionClass(static::class))->getProperties(); @@ -62,9 +62,12 @@ abstract class FetchableModel extends Model implements RemoteFetchable { if ($data === null) return null; - $obj = static::createFromJson($data, $autoSave); + $obj = static::createFromJson($data, $autoSave, $uri); $obj->finaliseAfterFetch($uri); + if (!$obj->validate()) { + return null; // and don't save + } if ($autoSave) { $obj->save(); $obj->finaliseAfterSave(); |
