diff --git a/api/app/Http/Controllers/ChildEntityController.php b/api/app/Http/Controllers/ChildEntityController.php index 9b7d4486..e76e704a 100644 --- a/api/app/Http/Controllers/ChildEntityController.php +++ b/api/app/Http/Controllers/ChildEntityController.php @@ -224,7 +224,8 @@ public function deleteOne($id, $childId) $model = $this->findParentEntity($id); $childModel = $this->findOrFailChildEntity($childId, $model); - $model->deleteChild($childModel, $this->relationName); + $childModel->delete(); + $model->fireRevisionableEvent('deleteChild', [$childModel, $this->relationName]); return $this->getResponse()->noContent(); } diff --git a/api/composer.lock b/api/composer.lock index 67fc5af0..cc024608 100644 --- a/api/composer.lock +++ b/api/composer.lock @@ -3669,12 +3669,12 @@ "source": { "type": "git", "url": "https://github.com/spira/revisionable.git", - "reference": "9e5251154866b894eb11dd26d2ec8ebb8519b3c5" + "reference": "c23b532a535eab58c07fa87cdf602a542786a5c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spira/revisionable/zipball/9e5251154866b894eb11dd26d2ec8ebb8519b3c5", - "reference": "9e5251154866b894eb11dd26d2ec8ebb8519b3c5", + "url": "https://api.github.com/repos/spira/revisionable/zipball/c23b532a535eab58c07fa87cdf602a542786a5c5", + "reference": "c23b532a535eab58c07fa87cdf602a542786a5c5", "shasum": "" }, "require": { diff --git a/api/src/Model/Model/BaseModel.php b/api/src/Model/Model/BaseModel.php index e0f969ff..ba6694b4 100644 --- a/api/src/Model/Model/BaseModel.php +++ b/api/src/Model/Model/BaseModel.php @@ -337,16 +337,20 @@ public function save(array $options = []) } /** - * Delete child model from the database. + * Fires an event for RevisionableTrait. * - * @param Model $model - * @param string $relation + * @param string $event + * @param array $payload + * @param bool $halt * - * @return bool|null + * @return mixed */ - public function deleteChild(Model $model, $relation) + public function fireRevisionableEvent($event, array $payload, $halt = true) { - return $model->delete(); + $event = "eloquent.{$event}: ".get_class($this); + $method = $halt ? 'until' : 'fire'; + + return static::$dispatcher->$method($event, array_merge([$this], $payload)); } /**