revert: recover start method used by ecosystem

This commit is contained in:
Sami Mazouz 2024-11-02 16:29:01 +01:00
parent 6e90945922
commit 849faf8065
No known key found for this signature in database
2 changed files with 19 additions and 10 deletions

View File

@ -242,16 +242,7 @@ class DiscussionResource extends AbstractDatabaseResource
/** @param Discussion $model */
public function creating(object $model, \Tobyz\JsonApiServer\Context $context): ?object
{
$actor = $context->getActor();
$model->created_at = Carbon::now();
$model->user_id = $actor->id;
$model->setRelation('user', $actor);
$model->raise(new Started($model));
return $model;
return Discussion::start(null, $context->getActor());
}
/** @param Discussion $model */

View File

@ -114,6 +114,24 @@ class Discussion extends AbstractModel
});
}
/**
* Start a new discussion. Raises the DiscussionWasStarted event.
*/
public static function start(?string $title, User $user): static
{
$discussion = new static;
$discussion->title = $title;
$discussion->created_at = Carbon::now();
$discussion->user_id = $user->id;
$discussion->setRelation('user', $user);
$discussion->raise(new Event\Started($discussion));
return $discussion;
}
public function rename(string $title): static
{
if ($this->title !== $title) {