13.3. 책 기록 응답 DTO 만들기

책 기록 정보를 클라이언트에 보내주는 책 기록 응답 DTO 객체를 만들겠습니다. 책 기록 응답 객체는 단독으로 사용되는 것은 아니고 책 정보 객체 BookReadResponseDTO의 하위 정보로 쓰여집니다.


com.yse.dev.book.dto 패키지에 BookLogReadResponseDTO 클래스를 생성합니다.
src/main/java > com.yse.dev.book.dto > BookLogReadResponseDTO.java

package com.yse.dev.book.dto;  

import java.time.LocalDateTime;  

import com.yse.dev.book.entity.BookLog;  

import lombok.Getter;  
import lombok.NoArgsConstructor;  
import lombok.Setter;  

@NoArgsConstructor  
@Getter  
@Setter  
public class BookLogReadResponseDTO {  
    private Integer bookLogId;  
    private String comment;  
    private Integer page;  
    private LocalDateTime insertDateTime;  

    private String displayComment;  

    public BookLogReadResponseDTO fromBookLog(BookLog bookLog) {  
        this.bookLogId = bookLog.getBookLogId();  
        this.comment = bookLog.getComment();  
        this.page = bookLog.getPage();  
        this.insertDateTime = bookLog.getInsertDateTime();  

        this.displayComment = (this.page == null ? "" : "(p." + String.valueOf(this.page) + ".) ") + this.comment;   

        return this;  
    }  

    public static BookLogReadResponseDTO BookLogFactory(BookLog bookLog) {  
        BookLogReadResponseDTO bookLogReadResponseDTO = new BookLogReadResponseDTO();  
        bookLogReadResponseDTO.fromBookLog(bookLog);  
        return bookLogReadResponseDTO;  
    }  
}  

displayComment는 책 기록을 보여주기 위한 가상의 필드입니다.