bus = $bus; } /** * Update a discussion according to input from the API request, and return * it ready to be serialized and assigned to the JsonApi response. * * @param JsonApiRequest $request * @param Document $document * @return \Flarum\Core\Discussions\Discussion */ protected function data(JsonApiRequest $request, Document $document) { $actor = $request->actor; $discussionId = $request->get('id'); $data = $request->get('data'); $discussion = $this->bus->dispatch( new EditDiscussion($discussionId, $actor, $data) ); // TODO: Refactor the ReadDiscussion (state) command into EditDiscussion? // That's what extensions will do anyway. if ($readNumber = array_get($data, 'attributes.readNumber')) { $state = $this->bus->dispatch( new ReadDiscussion($discussionId, $actor, $readNumber) ); $discussion = $state->discussion; } return $discussion; } }