Skip to content

Commit

Permalink
Merge pull request #109 from dongkyun0713/dongkyun
Browse files Browse the repository at this point in the history
fix() : 질문 게시글 수정 오류 해결
  • Loading branch information
dongkyun0713 authored Feb 27, 2024
2 parents f872a79 + 8462456 commit 3c104a6
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -81,8 +75,8 @@ public ResponseEntity<Page<QuestionDTO.Response>> getAllQuestions(@Parameter(hid
@ApiResponse(responseCode = "404", description = "질문을 찾을 수 없음")
})
public ResponseEntity<QuestionDTO.Response> 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);
Expand Down Expand Up @@ -121,7 +115,7 @@ public ResponseEntity<String> 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("질문 수정 성공");
}
Expand All @@ -139,7 +133,7 @@ public ResponseEntity<Void> 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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -137,8 +136,5 @@ public static class Update {

@Schema(description = "카테고리")
private Department department;

@Schema(description = "상태")
private Status status;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,6 @@ public interface QuestionRepository extends JpaRepository<Question, Long> {
boolean existsByIdAndAcceptedAnswerIsNotNull(Long id); // 채택된 답변이 있는지 확인

List<Question> findQuestionByAuthor(User user);


}
Original file line number Diff line number Diff line change
Expand Up @@ -82,22 +82,22 @@ public Page<QuestionDTO.Response> 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<Answer> answers = answerRepository.findByQuestionId(id);
Expand All @@ -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));

Expand Down

0 comments on commit 3c104a6

Please sign in to comment.