Skip to content

Commit 5babd70

Browse files
authored
Merge pull request #59 from DropThe8bit/feat/alarm
[refactor] 알림 조회 응답 데이터 포맷 수정
2 parents f2b0a17 + f6388ba commit 5babd70

3 files changed

Lines changed: 23 additions & 0 deletions

File tree

src/main/java/everTale/everTale_be/domain/alarm/dto/AlarmSummary.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,27 @@ public class AlarmSummary {
2020
@Schema(description = "스토리 ID", example = "12")
2121
private Long storyId;
2222

23+
@Schema(description = "알림 메시지", example = "「용과 마음의 열쇠」 ― 숨은 메세지가 도착했어요. 지금 확인해보세요!")
24+
private String message;
25+
2326
@Schema(description = "읽음 여부", example = "0")
2427
private boolean isRead;
2528

2629
public static AlarmSummary from(Alarm alarm){
30+
String message;
31+
String storyTitle = alarm.getStory().getTitle();
32+
33+
if (alarm.getAlarmType() == AlarmType.EASTEREGG_VOICE) {
34+
message = String.format("「%s」 ― 숨은 메세지가 도착했어요. 지금 확인해보세요!", storyTitle);
35+
} else {
36+
message = String.format("「%s」 ― 사랑의 편지가 도착했어요. 지금 확인해보세요!", storyTitle);
37+
}
38+
2739
return AlarmSummary.builder()
2840
.alarmId(alarm.getId())
2941
.alarmType(alarm.getAlarmType())
3042
.storyId(alarm.getStory().getId())
43+
.message(message)
3144
.isRead(alarm.isRead())
3245
.build();
3346
}

src/main/java/everTale/everTale_be/domain/alarm/dto/response/AlarmListResponseDto.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ public class AlarmListResponseDto {
1717
@Schema(description = "알림 요약 리스트")
1818
private List<AlarmSummary> alarmSummaries;
1919

20+
@Schema(description = "읽지 않은 알림 개수", example = "3")
21+
private long unreadCount;
22+
2023
@Schema(description = "현재 페이지 번호 (0부터 시작)", example = "0")
2124
private int currentPage;
2225

@@ -27,8 +30,13 @@ public class AlarmListResponseDto {
2730
private long totalCount;
2831

2932
public static AlarmListResponseDto from(Page<Alarm> alarms){
33+
long unreadCount = alarms.stream()
34+
.filter(alarm -> !alarm.isRead())
35+
.count();
36+
3037
return AlarmListResponseDto.builder()
3138
.alarmSummaries(alarms.stream().map(AlarmSummary::from).toList())
39+
.unreadCount(unreadCount)
3240
.currentPage(alarms.getNumber())
3341
.totalPage(alarms.getTotalPages())
3442
.totalCount(alarms.getTotalElements())

src/main/java/everTale/everTale_be/domain/alarm/service/AlarmService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import everTale.everTale_be.domain.profile.entity.Profile;
88
import everTale.everTale_be.domain.profile.util.ProfileHelper;
99
import everTale.everTale_be.domain.story.entity.Story;
10+
import everTale.everTale_be.domain.story.repository.StoryRepository;
1011
import everTale.everTale_be.global.apiPayload.code.status.ErrorStatus;
1112
import everTale.everTale_be.global.apiPayload.exception.handler.UnAuthorizedHandler;
1213
import lombok.AllArgsConstructor;
@@ -21,6 +22,7 @@
2122
public class AlarmService {
2223

2324
private final AlarmRepository alarmRepository;
25+
private final StoryRepository storyRepository;
2426
private final ProfileHelper profileHelper;
2527

2628
@Transactional

0 commit comments

Comments
 (0)