InhaBas / Inhabas.com-api

인하대학교 빅데이터 동아리 IBAS 웹앱, rest 개편 프로젝트 (2021.12.21~)
https://www.inhabas.com
9 stars 11 forks source link

[feature/Inhabas#234] 첨부파일 분류 기능 구현 #236

Closed skytin1004 closed 7 months ago

skytin1004 commented 7 months ago

게시판 단일 조회 시 첨부파일들을 썸네일, 이미지, 기타파일로 분류하는 기능 구현

게시판 단일 조회 시 첨부파일들을 썸네일, 이미지, 기타파일로 분류할 수 있습니다. 이를 구현하기 위해 ClassifiedFiles와 ClassifyFiles 클래스를 생성했습니다. 사용법은 아래와 같습니다.

ClassifyFiles

게시판 생성 시 혹은 게시판 수정 시 files 에 있는 첨부파일을 썸네일, 이미지 목록. 이미지가 아닌 기타 파일 목록으로 분류합니다. 분류가 되면 썸네일, 이미지 리스트, 기타 파일 리스트로 분류되어 ClassifiedFiles 객체에 저장이 됩니다.

ClassifiedFiles

ClassifyFiles에 의해 분류된 썸네일, 이미지 목록, 기타 파일 목록이 저장되는 공간입니다.

사용 예시: ContestBoard의 서비스 구현부

  // 공모전 게시판 단일조회
  @Override
  @Transactional(readOnly = true)
  public ContestBoardDetailDto getContestBoard(Long boardId) {

    ContestBoard contestBoard =
        contestBoardRepository.findById(boardId).orElseThrow(NotFoundException::new);

    ClassifiedFiles classifiedFiles =
        ClassifyFiles.classifyFiles(new ArrayList<>(contestBoard.getFiles()));

    return ContestBoardDetailDto.builder()
        .id(contestBoard.getId())
        .title(contestBoard.getTitle())
        .content(contestBoard.getContent())
        .writerName(contestBoard.getWriter().getName())
        .dateCreated(contestBoard.getDateCreated())
        .dateUpdated(contestBoard.getDateUpdated())
        .thumbnail(classifiedFiles.getThumbnail())
        .images(classifiedFiles.getImages())
        .otherFiles(classifiedFiles.getOtherFiles())
        .build();
  }