route('code'); $postID = $request->route('postID'); $commentID = $request->post('cid'); $method = $request->method(); // 게시판 코드 확인 if (!$code || !$postID || !$commentID) { abort(404); } // 게시판 조회 $board = $boardService->info($code); // 게시판 존재 유무 if (!$board || !$board->exists) { return response()->json(['success' => false, 'message' => '존재하지 않는 게시판입니다.']); } // 게시판 사용 여부 if ($board->is_display == 0) { return response()->json(['success' => false, 'message' => '더 이상 사용하지 않는 게시판입니다.']); } // 권한 유무 if ($method != 'DELETE') { $permission = $boardService->permission($code, BOARD_PERMIT_TYPE_5); if (!$permission->success) { return response()->json(['success' => false, 'message' => $permission->message]); } } // 게시글 존재 유무 if (!$postService->isExists($code, $postID)) { return response()->json(['success' => false, 'message' => '존재하지 않는 게시글입니다.']); } $userID = Auth::id(); $action = ($method == 'DELETE' ? '삭제' : '수정'); // 내가 작성한 댓글인지 확인 if (!$commentService->isMyComment($postID, $commentID, $userID)) { return response()->json(['success' => false, 'message' => $action . ' 권한이 없습니다.']); } $boardMeta = $boardService->meta($code); $comment = $commentService->info($postID, $commentID); // 댓글 수정/삭제 금지 기간 확인 if ($boardMeta->protect_comment_day > 0) { if ((time() - strtotime($comment->created_at)) >= ($boardMeta->protect_comment_day * 86400)) { return response()->json(['success' => false, 'message' => '이 게시판은 ' . $boardMeta->protect_comment_day . '일 이상된 게시글은 ' . $action . ' 불가합니다.']); } } return $next($request); } }