From 6f844ff40d936fb6591c2469dd9ff922bc4e575f Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 17 Dec 2024 23:05:43 +0000 Subject: implement interactions --- Digitigrade/Model/FetchableModel.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'Digitigrade/Model/FetchableModel.php') 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(); -- cgit v1.3