CommentReply.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Http\Middleware\Board;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. use App\Services\BoardService;
  6. use App\Services\PostService;
  7. use App\Services\CommentService;
  8. class CommentReply
  9. {
  10. public function handle(Request $request, Closure $next)
  11. {
  12. $boardService = new BoardService();
  13. $postService = new PostService();
  14. $commentService = new CommentService();
  15. $code = $request->route('code');
  16. $postID = $request->route('postID');
  17. $commentID = $request->post('cid');
  18. // 게시판 코드 확인
  19. if (!$code || !$postID || !$commentID) {
  20. abort(404);
  21. }
  22. // 게시판 조회
  23. $board = $boardService->info($code);
  24. // 게시판 존재 유무
  25. if (!$board || !$board->exists) {
  26. return response()->json(['success' => false, 'message' => '존재하지 않는 게시판입니다.']);
  27. }
  28. // 게시판 사용 여부
  29. if ($board->is_display == 0) {
  30. return response()->json(['success' => false, 'message' => '더 이상 사용하지 않는 게시판입니다.']);
  31. }
  32. // 권한 유무
  33. $permission = $boardService->permission($code, BOARD_PERMIT_TYPE_4);
  34. if (!$permission->success) {
  35. return response()->json(['success' => false, 'message' => $permission->message]);
  36. }
  37. // 게시글 존재 유무
  38. if (!$postService->isExists($code, $postID)) {
  39. return response()->json(['success' => false, 'message' => '존재하지 않는 게시글입니다.']);
  40. }
  41. // 답변 댓글 존재 확인
  42. if (!$commentService->isExists($postID, $commentID)) {
  43. return response()->json(['success' => false, 'message' => '잘못된 요청입니다.']);
  44. }
  45. return $next($request);
  46. }
  47. }