diff --git a/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java b/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java index ad365f7..152e4db 100644 --- a/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java +++ b/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java @@ -1,13 +1,22 @@ package com.bamboo.log.diary.dto.response; +import com.bamboo.log.diary.domain.Diary; import jakarta.validation.constraints.NotEmpty; import lombok.Builder; - import java.time.LocalDateTime; +import java.util.Base64; @Builder -public record CheckDiaryResponse(@NotEmpty(message = "Date shouldn't be empty") LocalDateTime date, - @NotEmpty(message = "Diary Description shouldn't be empty") String diaryDescription, - @NotEmpty(message = "Summary Image shouldn't be empty") byte[] summaryImage +public record CheckDiaryResponse( + @NotEmpty(message = "Date shouldn't be empty") LocalDateTime date, + @NotEmpty(message = "Diary Description shouldn't be empty") String diaryDescription, + String summaryImage // πŸ‘ˆ Base64 λ¬Έμžμ—΄λ‘œ λ³€κ²½ (byte[] λŒ€μ‹  String) ) { -} \ No newline at end of file + public static CheckDiaryResponse from(Diary diary, byte[] imageData) { + return new CheckDiaryResponse( + diary.getCreatedAt(), + diary.getContext(), + imageData != null ? Base64.getEncoder().encodeToString(imageData) : null + ); + } +} diff --git a/src/main/java/com/bamboo/log/diary/dto/response/GetDiariesOfMonthResponse.java b/src/main/java/com/bamboo/log/diary/dto/response/GetDiariesOfMonthResponse.java index 96285a3..6440971 100644 --- a/src/main/java/com/bamboo/log/diary/dto/response/GetDiariesOfMonthResponse.java +++ b/src/main/java/com/bamboo/log/diary/dto/response/GetDiariesOfMonthResponse.java @@ -1,7 +1,6 @@ package com.bamboo.log.diary.dto.response; import lombok.Builder; - import java.time.LocalDateTime; import java.util.List; @@ -11,12 +10,10 @@ public record GetDiariesOfMonthResponse( String date, List diaries ) { - @Builder public record DiaryOfMonth( LocalDateTime createdAt, String context, - byte[] summaryImage + String summaryImage ) {} - } diff --git a/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java b/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java index 315ad07..9d62714 100644 --- a/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java +++ b/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java @@ -27,6 +27,7 @@ import java.time.LocalDateTime; import java.time.YearMonth; import java.time.format.DateTimeFormatter; +import java.util.Base64; import java.util.List; import java.util.Map; import java.util.Optional; @@ -70,15 +71,17 @@ public ResponseEntity getDiariesByMonth(String date) { parseYearMonth.getStartOfMonth(), parseYearMonth.getEndOfMonth()); List diaryIds = diaries.stream().map(Diary::getId).toList(); - Map summaryImageMap = todaySummaryRepository.findByDiaryIdIn(diaryIds) + Map summaryImageMap = todaySummaryRepository.findByDiaryIdIn(diaryIds) .stream() - .collect(Collectors.toMap(TodaySummary::getDiaryId, TodaySummary::getImageData)); + .collect(Collectors.toMap( + TodaySummary::getDiaryId, + summary -> Base64.getEncoder().encodeToString(summary.getImageData()))); // βœ… Base64 λ³€ν™˜ List diaryOfMonthList = diaries.stream() .map(diary -> new DiaryOfMonth( diary.getCreatedAt(), diary.getContext(), - summaryImageMap.getOrDefault(diary.getId(), null) + summaryImageMap.getOrDefault(diary.getId(), null) // Base64 λ¬Έμžμ—΄ 전달 )) .toList(); @@ -110,12 +113,7 @@ public ResponseEntity getDiaryByDate(LocalDateTime date) { Optional summaryImage = todaySummaryRepository.findByDiaryId(diaryByDate.getId()); return ResponseHandler.create200Response(new ResponseForm(), - CheckDiaryResponse.builder() - .date(diaryByDate.getCreatedAt()) - .diaryDescription(diaryByDate.getContext()) - .summaryImage(summaryImage.map(TodaySummary::getImageData).orElse(null)) - .build()); - + CheckDiaryResponse.from(diaryByDate, summaryImage.map(TodaySummary::getImageData).orElse(null))); } catch (RuntimeException e) { return ResponseHandler.create404Error(new ResponseForm(), new IllegalArgumentException("ν•΄λ‹Ή λ‚ μ§œμ— μž‘μ„±λœ 일기가 μ—†μŠ΅λ‹ˆλ‹€.")); } catch (Exception e) { @@ -123,6 +121,7 @@ public ResponseEntity getDiaryByDate(LocalDateTime date) { } } + private Diary saveDiary(CreateDiaryRequest createDiaryRequest, LocalDateTime localDateTime) { UserEntity user = userContextUtil.getUserEntity();