Skip to content

Commit aa453ae

Browse files
committed
refactor: 응답 객체 추가 및 반환요청 수정
1 parent f61ebd1 commit aa453ae

File tree

4 files changed

+51
-12
lines changed

4 files changed

+51
-12
lines changed

src/main/java/dmu/dasom/api/domain/news/service/NewsService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dmu.dasom.api.domain.news.service;
22

3+
import dmu.dasom.api.global.file.dto.FileResponseDto;
34
import dmu.dasom.api.global.file.entity.FileEntity;
45
import dmu.dasom.api.global.file.service.FileService;
56
import dmu.dasom.api.domain.common.exception.CustomException;
@@ -52,7 +53,7 @@ public NewsResponseDto getNewsById(Long id) {
5253
// 뉴스 생성
5354
@Transactional
5455
public NewsResponseDto createNews(NewsRequestDto requestDto) {
55-
List<FileEntity> uploadedFiles = fileService.getFilesByIds(requestDto.getFileIds());
56+
List<FileResponseDto> uploadedFiles = fileService.getFilesByIds(requestDto.getFileIds());
5657

5758
List<String> base64Images = uploadedFiles.stream()
5859
.map(file -> "data:" + file.getFileType() + ";base64," + file.getBase64Data())
@@ -73,7 +74,8 @@ public NewsResponseDto updateNews(Long id, NewsRequestDto requestDto) {
7374
NewsEntity news = newsRepository.findById(id)
7475
.orElseThrow(() -> new CustomException(ErrorCode.NOT_FOUND));
7576

76-
List<FileEntity> uploadedFiles = fileService.getFilesByIds(requestDto.getFileIds());
77+
// fileEntity -> response로 수정
78+
List<FileResponseDto> uploadedFiles = fileService.getFilesByIds(requestDto.getFileIds());
7779

7880
List<String> base64Images = uploadedFiles.stream()
7981
.map(file -> "data:" + file.getFileType() + ";base64," + file.getBase64Data())

src/main/java/dmu/dasom/api/global/file/controller/FileController.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dmu.dasom.api.global.file.controller;
22

3+
import dmu.dasom.api.global.file.dto.FileResponseDto;
34
import dmu.dasom.api.global.file.service.FileService;
45
import lombok.RequiredArgsConstructor;
56
import org.springframework.http.ResponseEntity;
@@ -15,17 +16,21 @@ public class FileController {
1516

1617
private final FileService fileService;
1718

18-
// 파일 업로드
1919
@PostMapping("/upload")
2020
public ResponseEntity<List<Long>> uploadFiles(@RequestParam("files") List<MultipartFile> files) {
2121
List<Long> fileIds = fileService.uploadFiles(files);
2222
return ResponseEntity.ok(fileIds);
2323
}
2424

25-
// 파일 조회
25+
// dto 반환으로 수정
2626
@GetMapping("/{fileId}")
27-
public ResponseEntity<String> getFile(@PathVariable Long fileId) {
28-
return ResponseEntity.ok(fileService.getFileBase64(fileId));
27+
public ResponseEntity<FileResponseDto> getFile(@PathVariable Long fileId) {
28+
return ResponseEntity.ok(fileService.getFileById(fileId));
29+
}
30+
31+
@GetMapping("/list")
32+
public ResponseEntity<List<FileResponseDto>> getFiles(@RequestParam List<Long> fileIds) {
33+
return ResponseEntity.ok(fileService.getFilesByIds(fileIds));
2934
}
3035

3136
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package dmu.dasom.api.global.file.dto;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
@Data
9+
@Builder
10+
@NoArgsConstructor
11+
@AllArgsConstructor
12+
public class FileResponseDto {
13+
private Long id;
14+
private String fileType;
15+
private String base64Data; // Base64 인코딩 데이터
16+
}

src/main/java/dmu/dasom/api/global/file/service/FileService.java

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dmu.dasom.api.global.file.service;
22

3+
import dmu.dasom.api.global.file.dto.FileResponseDto;
34
import dmu.dasom.api.global.file.entity.FileEntity;
45
import dmu.dasom.api.global.file.repository.FileRepository;
56
import lombok.RequiredArgsConstructor;
@@ -33,20 +34,35 @@ public List<Long> uploadFiles(List<MultipartFile> files) {
3334
}
3435
}).collect(Collectors.toList());
3536

36-
return fileRepository.saveAll(savedFiles).stream().map(FileEntity::getId).collect(Collectors.toList());
37+
return fileRepository.saveAll(savedFiles)
38+
.stream()
39+
.map(FileEntity::getId)
40+
.collect(Collectors.toList());
3741
}
3842

3943
// 파일 하나 조회
40-
public String getFileBase64(Long fileId) {
44+
public FileResponseDto getFileById(Long fileId) {
4145
FileEntity file = fileRepository.findById(fileId)
4246
.orElseThrow(() -> new RuntimeException("파일을 찾을 수 없음"));
4347

44-
return "data:" + file.getFileType() + ";base64," + file.getBase64Data();
48+
return convertToDto(file);
4549
}
4650

4751
// 파일 여러개 조회
48-
public List<FileEntity> getFilesByIds(List<Long> fileIds) {
49-
return fileRepository.findAllById(fileIds);
52+
public List<FileResponseDto> getFilesByIds(List<Long> fileIds) {
53+
List<FileEntity> files = fileRepository.findAllById(fileIds);
54+
return files.stream()
55+
.map(this::convertToDto)
56+
.collect(Collectors.toList());
5057
}
51-
58+
59+
// FileEntity → FileResponseDto 변환용
60+
private FileResponseDto convertToDto(FileEntity file) {
61+
return FileResponseDto.builder()
62+
.id(file.getId())
63+
.fileType(file.getFileType())
64+
.base64Data("data:" + file.getFileType() + ";base64," + file.getBase64Data())
65+
.build();
66+
}
67+
5268
}

0 commit comments

Comments
 (0)