Skip to content

Commit 7ee1e39

Browse files
authored
Merge pull request #346 from let-s-record-it/feature-345
feature[#345]: 일정 추가 시 다른 CalendarMember에게 SSE 전송되도록 변경
2 parents 6e53f41 + a7549e6 commit 7ee1e39

30 files changed

+323
-158
lines changed

src/main/java/com/sillim/recordit/calendar/controller/CalendarController.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,7 @@ public class CalendarController {
3232

3333
@GetMapping
3434
public ResponseEntity<List<CalendarResponse>> calendarList(@CurrentMember Member member) {
35-
return ResponseEntity.ok(
36-
calendarMemberService.searchCalendarsByMemberId(member.getId()).stream()
37-
.map(CalendarResponse::from)
38-
.toList());
35+
return ResponseEntity.ok(calendarMemberService.searchCalendarsByMemberId(member.getId()));
3936
}
4037

4138
@PostMapping

src/main/java/com/sillim/recordit/calendar/service/CalendarMemberService.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.sillim.recordit.calendar.domain.Calendar;
44
import com.sillim.recordit.calendar.domain.CalendarMember;
55
import com.sillim.recordit.calendar.dto.response.CalendarMemberResponse;
6+
import com.sillim.recordit.calendar.dto.response.CalendarResponse;
67
import com.sillim.recordit.calendar.repository.CalendarMemberRepository;
78
import com.sillim.recordit.global.exception.ErrorCode;
89
import com.sillim.recordit.global.exception.common.InvalidRequestException;
@@ -50,8 +51,10 @@ public List<CalendarMemberResponse> searchCalendarMembers(Long calendarId) {
5051
}
5152

5253
@Transactional(readOnly = true)
53-
public List<Calendar> searchCalendarsByMemberId(Long memberId) {
54-
return calendarMemberRepository.findCalendarsByMemberId(memberId);
54+
public List<CalendarResponse> searchCalendarsByMemberId(Long memberId) {
55+
return calendarMemberRepository.findCalendarsByMemberId(memberId).stream()
56+
.map(CalendarResponse::from)
57+
.toList();
5558
}
5659

5760
public Long addCalendarMember(Long calendarId, Long memberId) {

src/main/java/com/sillim/recordit/goal/service/WeeklyGoalQueryService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.sillim.recordit.goal.service;
22

33
import com.sillim.recordit.calendar.domain.Calendar;
4+
import com.sillim.recordit.calendar.service.CalendarMemberService;
45
import com.sillim.recordit.calendar.service.CalendarQueryService;
56
import com.sillim.recordit.global.exception.ErrorCode;
67
import com.sillim.recordit.global.exception.common.RecordNotFoundException;
@@ -18,11 +19,12 @@ public class WeeklyGoalQueryService {
1819

1920
private final CalendarQueryService calendarQueryService;
2021
private final WeeklyGoalRepository weeklyGoalRepository;
22+
private final CalendarMemberService calendarMemberService;
2123

2224
public List<WeeklyGoal> searchAllWeeklyGoalByDate(
2325
final Integer year, final Integer month, final Long memberId, final Long calendarId) {
2426
Calendar calendar = calendarQueryService.searchByCalendarId(calendarId);
25-
calendar.validateAuthenticatedMember(memberId);
27+
calendarMemberService.validateCalendarMember(calendar.getId(), memberId);
2628

2729
return weeklyGoalRepository.findWeeklyGoalInMonth(year, month, calendarId);
2830
}

src/main/java/com/sillim/recordit/pushalarm/controller/AlarmLogController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class AlarmLogController {
1717
private final AlarmLogService alarmLogService;
1818

1919
@GetMapping
20-
public ResponseEntity<SliceResponse<PushMessage>> alarmLogList(
20+
public ResponseEntity<SliceResponse<PushMessage<String>>> alarmLogList(
2121
Pageable pageable, @CurrentMember Member member) {
2222
return ResponseEntity.ok(alarmLogService.searchRecentCreated(pageable, member.getId()));
2323
}

src/main/java/com/sillim/recordit/pushalarm/domain/AlarmLog.java

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,12 @@ public class AlarmLog extends BaseTime {
1818
@Column(name = "alarm_log_id", nullable = false)
1919
private Long id;
2020

21-
@Column(nullable = false)
22-
private Long activeId;
23-
2421
@Column(nullable = false)
2522
@Enumerated(EnumType.STRING)
2623
private AlarmType alarmType;
2724

2825
@Column(nullable = false)
29-
private String title;
30-
31-
@Column(nullable = false)
32-
private String body;
26+
private String content;
3327

3428
@Column(nullable = false)
3529
private Long senderId;
@@ -41,17 +35,9 @@ public class AlarmLog extends BaseTime {
4135
private boolean deleted;
4236

4337
@Builder
44-
public AlarmLog(
45-
Long activeId,
46-
AlarmType alarmType,
47-
String title,
48-
String body,
49-
Long senderId,
50-
Long receiverId) {
51-
this.activeId = activeId;
38+
public AlarmLog(AlarmType alarmType, String content, Long senderId, Long receiverId) {
5239
this.alarmType = alarmType;
53-
this.title = title;
54-
this.body = body;
40+
this.content = content;
5541
this.senderId = senderId;
5642
this.receiverId = receiverId;
5743
this.deleted = false;

src/main/java/com/sillim/recordit/pushalarm/dto/AlarmType.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.sillim.recordit.pushalarm.dto;
22

33
public enum AlarmType {
4-
SCHEDULE,
4+
SCHEDULE_ADD,
5+
SCHEDULE_DELETE,
6+
SCHEDULE_ALARM,
57
INVITE,
68
FOLLOWING,
79
FEED_LIKE,
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.sillim.recordit.pushalarm.dto;
2+
3+
public record FeedLikeMessage(Long feedLikeId, String title) {}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.sillim.recordit.pushalarm.dto;
2+
3+
public record FollowMessage(Long followerId, String title, String body) {}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.sillim.recordit.pushalarm.dto;
2+
3+
public record InviteMessage(Long inviteLogId, String title, String body) {}
Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,58 @@
11
package com.sillim.recordit.pushalarm.dto;
22

3-
import com.sillim.recordit.pushalarm.domain.AlarmLog;
3+
import com.sillim.recordit.schedule.domain.Schedule;
4+
import java.util.List;
45

5-
public record PushMessage(Long id, AlarmType type, Long activeId, String title, String body) {
6+
public record PushMessage<T>(Long id, AlarmType type, T content) {
67

7-
public static PushMessage fromInvite(
8+
public static PushMessage<InviteMessage> fromInvite(
89
Long activeId, String calendarTitle, String inviterPersonalId) {
9-
return new PushMessage(
10+
return new PushMessage<>(
1011
null,
1112
AlarmType.INVITE,
12-
activeId,
13-
inviterPersonalId + "님의 " + calendarTitle + "캘린더 초대",
14-
"참가하시겠습니까?");
13+
new InviteMessage(
14+
activeId,
15+
inviterPersonalId + "님의 " + calendarTitle + "캘린더 초대",
16+
"참가하시겠습니까?"));
1517
}
1618

17-
public static PushMessage fromFollowing(Long activeId, String followerPersonalId) {
18-
return new PushMessage(
19+
public static PushMessage<FollowMessage> fromFollowing(
20+
Long activeId, String followerPersonalId) {
21+
return new PushMessage<>(
1922
null,
2023
AlarmType.FOLLOWING,
21-
activeId,
22-
followerPersonalId + "님이 팔로우했습니다.",
23-
"맞팔로우하시겠습니까?");
24+
new FollowMessage(activeId, followerPersonalId + "님이 팔로우했습니다.", "맞팔로우하시겠습니까?"));
2425
}
2526

26-
public static PushMessage fromSchedule(
27+
public static PushMessage<ScheduleAlarmMessage> fromScheduleAlarm(
2728
Long activeId, String scheduleTitle, String scheduledTime) {
28-
return new PushMessage(null, AlarmType.SCHEDULE, activeId, scheduleTitle, scheduledTime);
29-
}
30-
31-
public static PushMessage fromAlarmLog(AlarmLog alarmLog) {
32-
return new PushMessage(
33-
alarmLog.getId(),
34-
alarmLog.getAlarmType(),
35-
alarmLog.getActiveId(),
36-
alarmLog.getTitle(),
37-
alarmLog.getBody());
29+
return new PushMessage<>(
30+
null,
31+
AlarmType.SCHEDULE_ALARM,
32+
new ScheduleAlarmMessage(activeId, scheduleTitle, scheduledTime));
3833
}
3934

40-
public static PushMessage fromFeedLike(
35+
public static PushMessage<FeedLikeMessage> fromFeedLike(
4136
Long feedLikeId, String likerPersonalId, String feedTitle) {
42-
return new PushMessage(
37+
return new PushMessage<>(
4338
null,
4439
AlarmType.FEED_LIKE,
45-
feedLikeId,
46-
likerPersonalId + "님이 " + feedTitle + " 피드에 좋아요를 눌렀습니다.",
47-
"");
40+
new FeedLikeMessage(
41+
feedLikeId, likerPersonalId + "님이 " + feedTitle + " 피드에 좋아요를 눌렀습니다."));
42+
}
43+
44+
public static PushMessage<List<ScheduleAddMessage>> fromAddSchedules(List<Schedule> schedules) {
45+
return new PushMessage<>(
46+
null,
47+
AlarmType.SCHEDULE_ADD,
48+
schedules.stream().map(ScheduleAddMessage::from).toList());
49+
}
50+
51+
public static PushMessage<List<ScheduleDeleteMessage>> fromDeleteSchedules(
52+
List<Schedule> schedules) {
53+
return new PushMessage<>(
54+
null,
55+
AlarmType.SCHEDULE_DELETE,
56+
schedules.stream().map(ScheduleDeleteMessage::from).toList());
4857
}
4958
}

0 commit comments

Comments
 (0)