/** * Move topic * * @param PostCreateListener $listener * @param array $input * @param $topic * @param $user * @return \Illuminate\Http\RedirectResponse */ public function create(PostCreateListener $listener, $input, $topic, $user) { // Validate if (!$this->validator->validate($input)) { return $listener->postCreateFailed($this->validator->errors()); } // Show preview if (isset($input['preview'])) { return $listener->showPreview($this->preview->generatePost($input, \Auth::user())); } // Go back from preview if (isset($input['back'])) { return $listener->backFromPreview(); } // Create post $post = $this->creator->create($input, $topic, $user); return $listener->postCreateSucceeded($post); }
/** * Move topic * * @param TopicCreateListener $listener * @param $input * @param $user * @internal param $topic * @return \Illuminate\Http\RedirectResponse */ public function create(TopicCreateListener $listener, $input, $user) { if (!$this->validator->validate($input)) { return $listener->topicCreationFailed($this->validator->errors()); } // Show preview if (isset($input['preview'])) { // Create preview $topic = $this->preview->generateTopic($input); $post = $this->preview->generatePost($input, \Auth::user()); return $listener->showPreview($post, $topic); } // Go back from preview if (isset($input['back'])) { $listener->backFromPreview(); } // Create topic $topic = $this->topicCreator->create($input, $user); return $listener->topicCreated($topic); }