diff --git a/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/controller/QuestionController.java b/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/controller/QuestionController.java index 5214ef0..5bb210c 100644 --- a/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/controller/QuestionController.java +++ b/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/controller/QuestionController.java @@ -4,21 +4,15 @@ import com.example.titto_backend.auth.repository.UserRepository; import com.example.titto_backend.common.exception.CustomException; import com.example.titto_backend.common.exception.ErrorCode; -import com.example.titto_backend.questionBoard.domain.Question; import com.example.titto_backend.questionBoard.dto.QuestionDTO; import com.example.titto_backend.questionBoard.service.QuestionService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.security.Principal; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.ZoneOffset; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -81,8 +75,8 @@ public ResponseEntity> getAllQuestions(@Parameter(hid @ApiResponse(responseCode = "404", description = "질문을 찾을 수 없음") }) public ResponseEntity getQuestionById(@PathVariable("postId") Long postId, - HttpServletRequest request, - HttpServletResponse response) { + HttpServletRequest request, + HttpServletResponse response) { try { QuestionDTO.Response question = questionService.findById(postId, request, response); return ResponseEntity.ok(question); @@ -121,7 +115,7 @@ public ResponseEntity updateQuestion(@PathVariable("postId") Long postId User currentUser = userRepository.findByEmail(currentEmail) .orElseThrow(() -> new CustomException(ErrorCode.USER_NOT_FOUND)); - questionService.update(update, postId, currentUser.getId()); + questionService.update(update, postId, currentUser); return ResponseEntity.ok("질문 수정 성공"); } @@ -139,7 +133,7 @@ public ResponseEntity deleteQuestion(@PathVariable("postId") Long postId) String currentEmail = SecurityContextHolder.getContext().getAuthentication().getName(); // 현재 사용자의 이메일 주소 가져오기 User currentUser = userRepository.findByEmail(currentEmail) .orElseThrow(() -> new CustomException(ErrorCode.USER_NOT_FOUND)); - questionService.delete(postId, currentUser.getId()); // 현재 사용자의 ID를 전달하여 삭제 메소드 호출 + questionService.delete(postId, currentUser); // 현재 사용자의 ID를 전달하여 삭제 메소드 호출 return ResponseEntity.noContent().build(); } } diff --git a/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/domain/Question.java b/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/domain/Question.java index 3763840..f17f48a 100644 --- a/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/domain/Question.java +++ b/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/domain/Question.java @@ -65,11 +65,10 @@ public class Question extends BaseEntity { @JoinColumn(name = "is_accepted_answer") private boolean isAnswerAccepted; - public void update(String title, String content, Department department, Status status) { + public void update(String title, String content, Department department) { this.title = title; this.content = content; this.department = department; - this.status = status; } @Column(name = "view_count", nullable = false, columnDefinition = "INTEGER DEFAULT 0") diff --git a/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/dto/QuestionDTO.java b/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/dto/QuestionDTO.java index d8d4266..58d7679 100644 --- a/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/dto/QuestionDTO.java +++ b/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/dto/QuestionDTO.java @@ -2,7 +2,6 @@ import com.example.titto_backend.questionBoard.domain.Department; import com.example.titto_backend.questionBoard.domain.Question; -import com.example.titto_backend.questionBoard.domain.Status; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; @@ -137,8 +136,5 @@ public static class Update { @Schema(description = "카테고리") private Department department; - - @Schema(description = "상태") - private Status status; } } diff --git a/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/repository/QuestionRepository.java b/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/repository/QuestionRepository.java index 04f17d4..b719011 100644 --- a/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/repository/QuestionRepository.java +++ b/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/repository/QuestionRepository.java @@ -16,4 +16,6 @@ public interface QuestionRepository extends JpaRepository { boolean existsByIdAndAcceptedAnswerIsNotNull(Long id); // 채택된 답변이 있는지 확인 List findQuestionByAuthor(User user); + + } diff --git a/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/service/QuestionService.java b/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/service/QuestionService.java index c7163cb..bb920e6 100644 --- a/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/service/QuestionService.java +++ b/Titto_Backend/src/main/java/com/example/titto_backend/questionBoard/service/QuestionService.java @@ -82,22 +82,22 @@ public Page findByCategory(Pageable pageable, String categ // Update @Transactional - public void update(QuestionDTO.Update update, Long id, Long userId) throws CustomException { - validateAuthorIsLoggedInUser(id, userId); + public void update(QuestionDTO.Update update, Long id, User user) throws CustomException { + validateAuthorIsLoggedInUser(id, user); Question oldQuestion = questionRepository.findById(id) .orElseThrow(() -> new CustomException(ErrorCode.QUESTION_NOT_FOUND)); + oldQuestion.update( update.getTitle(), update.getContent(), - Department.valueOf(String.valueOf(update.getDepartment())), - Status.valueOf(String.valueOf(update.getStatus())) + Department.valueOf(String.valueOf(update.getDepartment())) ); } // Delete @Transactional - public void delete(Long id, Long userId) { - validateAuthorIsLoggedInUser(id, userId); + public void delete(Long id, User user) { + validateAuthorIsLoggedInUser(id, user); // 질문에 연관된 답변들을 가져옴 List answers = answerRepository.findByQuestionId(id); @@ -122,9 +122,7 @@ private void isAcceptAnswer(Question question, User user) { } // 글을 쓴 사람과 현재 로그인한 사람이 같은지 확인 - private void validateAuthorIsLoggedInUser(Long id, Long userId) { - User user = userRepository.findById(userId) - .orElseThrow(() -> new CustomException(ErrorCode.USER_NOT_FOUND)); + private void validateAuthorIsLoggedInUser(Long id, User user) { Question question = questionRepository.findById(id) .orElseThrow(() -> new CustomException(ErrorCode.QUESTION_NOT_FOUND));