Flarum\Core\Command\EditDiscussionHandler::handle PHP Method

handle() public method

public handle ( EditDiscussion $command ) : Discussion
$command EditDiscussion
return Flarum\Core\Discussion
    public function handle(EditDiscussion $command)
    {
        $actor = $command->actor;
        $data = $command->data;
        $attributes = array_get($data, 'attributes', []);
        $discussion = $this->discussions->findOrFail($command->discussionId, $actor);
        if (isset($attributes['title'])) {
            $this->assertCan($actor, 'rename', $discussion);
            $discussion->rename($attributes['title']);
        }
        if (isset($attributes['isHidden'])) {
            $this->assertCan($actor, 'hide', $discussion);
            if ($attributes['isHidden']) {
                $discussion->hide($actor);
            } else {
                $discussion->restore();
            }
        }
        $this->events->fire(new DiscussionWillBeSaved($discussion, $actor, $data));
        $this->validator->assertValid($discussion->getDirty());
        $discussion->save();
        $this->dispatchEventsFor($discussion, $actor);
        return $discussion;
    }
EditDiscussionHandler