2.3.2 Retrieve Todo 구현

jaehyeok1230·2022년 11월 26일
0

퍼시스턴스 구현

createTodo에서 했던 것처럼 새 Todo 리스트 반환을 위해 findByUserId() 메서드를 사용한다.

서비스 구현

Repository의 findByUserId()를 이용해 TodoService에 findAll이라는 메서드 작성

public List<TodoEntity> retrieve(final String userId) {
        return repository.findByUserId(userId);
    }

컨트롤러 구현

TodoController에 새 GET 메서드를 만들어주고 메서드 내부를 서비스 코드를 이용하여 작성한다.

@GetMapping
    public ResponseEntity<?> retrieveTodoList() {
        String temporaryUserId = "temporary-user"; // temporary user id.

        // (1) 서비스 메서드의 retrieve 메서드를 사용해 Todo 리스트를 가져온다.
        List<TodoEntity> entities = service.retrieve(temporaryUserId);

        // (2) 자바 스트림을 이용해 리턴된 엔티티 리스트를 TodoDTO 리스트로 변환한다.
        List<TodoDTO> dtos = entities.stream().map(TodoDTO::new).collect(Collectors.toList());

        // (6) 변환된 TodoDTO 리스트를 이용해 ResponseDTO를 초기화한다.
        ResponseDTO<TodoDTO> response = ResponseDTO.<TodoDTO>builder().data(dtos).build();

        // (7) Response를 리턴한다.
        return ResponseEntity.ok().body(response);
    }

테스팅

주의!! H2 데이터베이스를 사용하고 있으니 이전에 생성했던 Todo 아이템은 이미 없어졌다. 그러니 HTTP POST 메서드로 새 Todo 아이템을 생성하고 GET 메서드로 리스트를 받아야 한다.

0개의 댓글