diff --git a/src/Endpoint/Concerns/SavesData.php b/src/Endpoint/Concerns/SavesData.php index 4310799..7b63e5c 100644 --- a/src/Endpoint/Concerns/SavesData.php +++ b/src/Endpoint/Concerns/SavesData.php @@ -308,4 +308,14 @@ trait SavesData ); } } + + /** + * Get a fresh copy of the model for display. + */ + private function freshModel(ResourceType $resourceType, $model, Context $context) + { + $id = $resourceType->getAdapter()->getId($model); + + return $this->findResource($resourceType, $id, $context); + } } diff --git a/src/Endpoint/Create.php b/src/Endpoint/Create.php index 43bc626..59994e4 100644 --- a/src/Endpoint/Create.php +++ b/src/Endpoint/Create.php @@ -56,6 +56,8 @@ class Create run_callbacks($schema->getListeners('created'), [&$model, $context]); + $model = $this->freshModel($resourceType, $model, $context); + return (new Show()) ->handle($context, $resourceType, $model) ->withStatus(201) diff --git a/src/Endpoint/Update.php b/src/Endpoint/Update.php index 3112e3d..f717c0b 100644 --- a/src/Endpoint/Update.php +++ b/src/Endpoint/Update.php @@ -53,6 +53,8 @@ class Update run_callbacks($schema->getListeners('updated'), [&$model, $context]); + $model = $this->freshModel($resourceType, $model, $context); + return (new Show()) ->handle($context, $resourceType, $model); }