댓글 백엔드 시험

류한선·2024년 5월 13일

4차 프로젝트

목록 보기
29/53
git pull origin master
@AllArgsConstructor
    @Getter
    public static class AnswersResponses {
        private final List<AnswerDto> answers;
    }

    @AllArgsConstructor
    @Getter
    public static class AnswersResponse {
        private final AnswerDto answer;
    }
    
    
    @GetMapping("")
    public RsData<AnswersResponses> getAnswers() {
        List<AnswerDto> answerDtoList = this.answerService
                .getList()
                .stream()
                .map(answer -> new AnswerDto(answer))
                .toList();

        return RsData.of(RsCode.S_01, "성공", new AnswersResponses(answerDtoList));
    }
    @GetMapping("/{articleId}/articles")
    public RsData<AnswersResponses> getAnswerAndArticle(@PathVariable(value = "articleId") Long articleId) {
        List<Answer> answers = this.answerService.findAllByArticleId(articleId);
        List<AnswerDto> answerDTOS = new ArrayList<>();
        for (Answer answer : answers) {
            answerDTOS.add(new AnswerDto(answer));
        }

        return RsData.of(RsCode.S_01, "성공", new AnswersResponses(answerDTOS));
    }

    @GetMapping("/{id}")
    public RsData<AnswersResponse> getAnswer(@PathVariable("id") Long id) {
        return answerService.getAnswer(id).map(answer -> RsData.of(RsCode.S_01,
                "성공",
                new AnswersResponse(new AnswerDto(answer))
        )).orElseGet(() -> RsData.of(RsCode.F_01,
                "%d 번  댓글은 존재하지 않습니다.".formatted(id),
                null
        ));
    }
public List<Answer> findAllByArticleId(Long articleId) {
        return this.answerRepository.findAllByArticleId(articleId);
    }
List<Answer> findAllByArticleId(Long articleId);

0개의 댓글