/** * Returns a thread and its replies to the client. * * @var Board $board * @var Post $thread * @return Response */ public function getThread(Request $request, Board $board, Post $thread) { $input = $request->only('updatesOnly', 'updateHtml', 'updatedSince'); if (isset($input['updatesOnly'])) { $updatedSince = Carbon::createFromTimestamp($request->input('updatedSince', 0)); $includeHTML = isset($input['updateHtml']); $posts = Post::getUpdates($updatedSince, $board, $thread, $includeHTML); $posts->sortBy('board_id'); return $posts; } else { // Pull the thread. $thread = $board->getThreadByBoardId($thread); if (!$thread) { return abort(404); } } return $thread; }
/** * Returns a thread and its replies to the client. * * @param Request $request * @param Board $board * @param Post $thread * @return Response */ public function getThread(Request $request, Board $board, Post $thread, $splice = null) { $input = $request->only('updatesOnly', 'updateHtml', 'updatedSince'); if (isset($input['updatesOnly'])) { $updatedSince = Carbon::createFromTimestamp($request->input('updatedSince', 0)); $includeHTML = isset($input['updateHtml']); $posts = Post::getUpdates($updatedSince, $board, $thread, $includeHTML); $posts->sortBy('board_id'); return $this->apiResponse($posts); } return $this->apiResponse($thread); }
/** * Handles the creation of a new thread or reply. * * @param \App\Http\Requests\PostRequest $request * @param Board $board * @param Post|null $thread * @return Response (redirects to the thread view) */ public function putThread(PostRequest $request, Board $board, Post $thread = null) { // Create the post. $post = new Post($request->all()); $post->submitTo($board, $thread); // Log staff posts. if ($post->capcode_id) { $this->log('log.post.capcode', $post, ["board_id" => $post->board_id, "board_uri" => $post->board_uri, "capcode" => $post->capcode->getCapcodeName(), "role" => $post->capcode->role]); } $input = $request->only('updatesOnly', 'updateHtml', 'updatedSince'); if ($request->wantsJson()) { $updatedSince = Carbon::createFromTimestamp($request->input('updatedSince', Carbon::now()->subMinutes(4)->timestamp)); $includeHTML = isset($input['updateHtml']); $posts = Post::getUpdates($updatedSince, $board, $thread, $includeHTML); $post->setAppendHTML($includeHTML); $posts->push($post); $posts->sortBy('board_id'); return $posts; } // Redirect to the new post or thread. if ($post->reply_to_board_id) { return redirect("{$board->board_uri}/thread/{$post->reply_to_board_id}#{$post->board_id}"); } else { return redirect("{$board->board_uri}/thread/{$post->board_id}#{$post->board_id}"); } }