aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Model/FetchableModel.php
diff options
context:
space:
mode:
authorwinter2024-12-17 23:05:43 +0000
committerwinter2024-12-17 23:05:43 +0000
commit6f844ff40d936fb6591c2469dd9ff922bc4e575f (patch)
tree007dc0372c2c999bdcf6ea1ba80f6eb93a161a7f /Digitigrade/Model/FetchableModel.php
parent801778a295df2b026391483faa390cf87e68b1ad (diff)
implement interactions
Diffstat (limited to 'Digitigrade/Model/FetchableModel.php')
-rw-r--r--Digitigrade/Model/FetchableModel.php7
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();