X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/221a483b40d6e2860c4552812b0a9ec90dc8c008..refs/pull/1998/head:/app/Http/Controllers/CommentController.php diff --git a/app/Http/Controllers/CommentController.php b/app/Http/Controllers/CommentController.php index 860b50762..068358d72 100644 --- a/app/Http/Controllers/CommentController.php +++ b/app/Http/Controllers/CommentController.php @@ -2,44 +2,36 @@ use Activity; use BookStack\Actions\CommentRepo; -use BookStack\Entities\Repos\EntityRepo; -use Illuminate\Database\Eloquent\ModelNotFoundException; +use BookStack\Entities\Page; use Illuminate\Http\Request; +use Illuminate\Validation\ValidationException; class CommentController extends Controller { - protected $entityRepo; protected $commentRepo; /** * CommentController constructor. - * @param \BookStack\Entities\Repos\EntityRepo $entityRepo - * @param \BookStack\Actions\CommentRepo $commentRepo */ - public function __construct(EntityRepo $entityRepo, CommentRepo $commentRepo) + public function __construct(CommentRepo $commentRepo) { - $this->entityRepo = $entityRepo; $this->commentRepo = $commentRepo; parent::__construct(); } /** * Save a new comment for a Page - * @param Request $request - * @param integer $pageId - * @param null|integer $commentId - * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\JsonResponse|\Symfony\Component\HttpFoundation\Response + * @throws ValidationException */ - public function savePageComment(Request $request, $pageId, $commentId = null) + public function savePageComment(Request $request, int $pageId, int $commentId = null) { $this->validate($request, [ 'text' => 'required|string', 'html' => 'required|string', ]); - try { - $page = $this->entityRepo->getById('page', $pageId, true); - } catch (ModelNotFoundException $e) { + $page = Page::visible()->find($pageId); + if ($page === null) { return response('Not found', 404); } @@ -59,11 +51,9 @@ class CommentController extends Controller /** * Update an existing comment. - * @param Request $request - * @param integer $commentId - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @throws ValidationException */ - public function update(Request $request, $commentId) + public function update(Request $request, int $commentId) { $this->validate($request, [ 'text' => 'required|string', @@ -80,13 +70,12 @@ class CommentController extends Controller /** * Delete a comment from the system. - * @param integer $id - * @return \Illuminate\Http\JsonResponse */ - public function destroy($id) + public function destroy(int $id) { $comment = $this->commentRepo->getById($id); $this->checkOwnablePermission('comment-delete', $comment); + $this->commentRepo->delete($comment); return response()->json(['message' => trans('entities.comment_deleted')]); }