Skip to content

Commit 42d62d5

Browse files
authored
Merge pull request #291 from prgrms-web-devcourse-final-project/refactor/EA3-207-alarm
[EA3-207] refactor: 알림 도메인 타입 검증 에러코드 수정
2 parents 1158063 + 6c1ec3e commit 42d62d5

File tree

11 files changed

+47
-20
lines changed

11 files changed

+47
-20
lines changed

src/main/java/grep/neogulcoder/domain/alram/exception/code/AlarmErrorCode.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,16 @@
88
public enum AlarmErrorCode implements ErrorCode {
99

1010
ALARM_NOT_FOUND("A001",HttpStatus.NOT_FOUND,"알람을 찾을 수 없습니다."),
11-
ALREADY_CHECKED("A002",HttpStatus.BAD_REQUEST,"이미 읽은 알림입니다.");
11+
ALREADY_CHECKED("A002",HttpStatus.BAD_REQUEST,"이미 읽은 알림입니다."),
12+
13+
INVALID_ALARM_TYPE("A003", HttpStatus.BAD_REQUEST, "지원하지 않는 알림 타입입니다."),
14+
INVALID_DOMAIN_TYPE_FOR_STUDY_INVITE_ALARM("A004", HttpStatus.BAD_REQUEST, "스터디 초대 알림은 STUDY 도메인에만 해당됩니다."),
15+
INVALID_DOMAIN_TYPE_FOR_STUDY_EXTENSION_ALARM("A005", HttpStatus.BAD_REQUEST, "스터디 연장 알림은 STUDY 도메인에만 해당됩니다."),
16+
INVALID_DOMAIN_TYPE_FOR_STUDY_ENDING_ALARM("A006", HttpStatus.BAD_REQUEST, "스터디 종료 7일 전 연장 가능 알림은 STUDY 도메인에만 해당됩니다."),
17+
INVALID_DOMAIN_TYPE_FOR_TIME_VOTE_ALARM("A007", HttpStatus.BAD_REQUEST, "시간 투표 요청은 TIME_VOTE 도메인에만 해당됩니다."),
18+
INVALID_DOMAIN_TYPE_FOR_APPLICATION_APPROVED_ALARM("A008", HttpStatus.BAD_REQUEST, "스터디 신청 승인 알림은 STUDY_APPLICATION 도메인에만 해당됩니다."),
19+
INVALID_DOMAIN_TYPE_FOR_APPLICATION_REJECTED_ALARM("A009", HttpStatus.BAD_REQUEST, "스터디 신청 거절 알림은 STUDY_APPLICATION 도메인에만 해당됩니다."),
20+
INVALID_DOMAIN_TYPE_FOR_RECRUITMENT_ALARM("A010", HttpStatus.BAD_REQUEST, "스터디 신청 알림은 RECRUITMENT_POST 도메인에만 해당됩니다.");
1221

1322
private final String code;
1423
private final HttpStatus status;

src/main/java/grep/neogulcoder/domain/alram/service/AlarmService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,15 +99,15 @@ public List<AlarmResponse> getAllAlarms(Long receiverUserId) {
9999
public void checkAllAlarmWithoutInvite(Long receiverUserId) {
100100
List<Alarm> alarms = alarmRepository.findAllByReceiverUserIdAndCheckedFalse(receiverUserId);
101101
alarms.stream()
102-
.filter(alarm -> alarm.getAlarmType() != AlarmType.INVITE)
102+
.filter(alarm -> alarm.getAlarmType() != AlarmType.STUDY_INVITE)
103103
.forEach(Alarm::checkAlarm);
104104
}
105105

106106
@EventListener
107107
public void handleStudyInviteEvent(StudyInviteEvent event) {
108108
saveAlarm(
109109
event.targetUserId(),
110-
AlarmType.INVITE,
110+
AlarmType.STUDY_INVITE,
111111
DomainType.STUDY,
112112
event.studyId()
113113
);

src/main/java/grep/neogulcoder/domain/alram/type/AlarmType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package grep.neogulcoder.domain.alram.type;
22

33
public enum AlarmType {
4-
INVITE,
4+
STUDY_INVITE,
55
STUDY_EXTEND,
66
STUDY_EXTENSION_REMINDER,
77
STUDY_POST_COMMENT,

src/main/java/grep/neogulcoder/domain/study/provider/InviteMessageProvider.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@
55
import grep.neogulcoder.domain.study.Study;
66
import grep.neogulcoder.domain.study.exception.code.StudyErrorCode;
77
import grep.neogulcoder.domain.study.repository.StudyRepository;
8+
import grep.neogulcoder.global.exception.business.BusinessException;
89
import grep.neogulcoder.global.exception.business.NotFoundException;
910
import grep.neogulcoder.global.provider.MessageProvidable;
1011
import lombok.RequiredArgsConstructor;
1112
import org.springframework.stereotype.Component;
1213

14+
import static grep.neogulcoder.domain.alram.exception.code.AlarmErrorCode.*;
15+
1316
@Component
1417
@RequiredArgsConstructor
1518
public class InviteMessageProvider implements MessageProvidable {
@@ -18,13 +21,13 @@ public class InviteMessageProvider implements MessageProvidable {
1821

1922
@Override
2023
public boolean isSupport(AlarmType alarmType) {
21-
return alarmType == AlarmType.INVITE;
24+
return alarmType == AlarmType.STUDY_INVITE;
2225
}
2326

2427
@Override
2528
public String provideMessage(DomainType domainType, Long domainId) {
2629
if (domainType != DomainType.STUDY) {
27-
throw new IllegalArgumentException("초대 알림은 스터디 도메인에만 해당됩니다.");
30+
throw new BusinessException(INVALID_DOMAIN_TYPE_FOR_STUDY_INVITE_ALARM);
2831
}
2932

3033
String studyName = studyRepository.findById(domainId)

src/main/java/grep/neogulcoder/domain/study/provider/StudyExtendMessageProvider.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44
import grep.neogulcoder.domain.alram.type.DomainType;
55
import grep.neogulcoder.domain.study.Study;
66
import grep.neogulcoder.domain.study.repository.StudyRepository;
7+
import grep.neogulcoder.global.exception.business.BusinessException;
78
import grep.neogulcoder.global.exception.business.NotFoundException;
89
import grep.neogulcoder.global.provider.MessageProvidable;
910
import lombok.RequiredArgsConstructor;
1011
import org.springframework.stereotype.Component;
1112

12-
import static grep.neogulcoder.domain.study.exception.code.StudyErrorCode.STUDY_NOT_FOUND;
13+
import static grep.neogulcoder.domain.alram.exception.code.AlarmErrorCode.*;
14+
import static grep.neogulcoder.domain.study.exception.code.StudyErrorCode.*;
1315

1416
@Component
1517
@RequiredArgsConstructor
@@ -25,7 +27,7 @@ public boolean isSupport(AlarmType alarmType) {
2527
@Override
2628
public String provideMessage(DomainType domainType, Long domainId) {
2729
if (domainType != DomainType.STUDY) {
28-
throw new IllegalArgumentException("스터디 연장 알림은 STUDY 도메인에만 해당됩니다.");
30+
throw new BusinessException(INVALID_DOMAIN_TYPE_FOR_STUDY_EXTENSION_ALARM);
2931
}
3032

3133
String studyName = studyRepository.findById(domainId)

src/main/java/grep/neogulcoder/domain/study/provider/StudyExtensionReminderMessageProvider.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44
import grep.neogulcoder.domain.alram.type.DomainType;
55
import grep.neogulcoder.domain.study.Study;
66
import grep.neogulcoder.domain.study.repository.StudyRepository;
7+
import grep.neogulcoder.global.exception.business.BusinessException;
78
import grep.neogulcoder.global.exception.business.NotFoundException;
89
import grep.neogulcoder.global.provider.MessageProvidable;
910
import lombok.RequiredArgsConstructor;
1011
import org.springframework.stereotype.Component;
1112

12-
import static grep.neogulcoder.domain.study.exception.code.StudyErrorCode.STUDY_NOT_FOUND;
13+
import static grep.neogulcoder.domain.alram.exception.code.AlarmErrorCode.*;
14+
import static grep.neogulcoder.domain.study.exception.code.StudyErrorCode.*;
1315

1416
@Component
1517
@RequiredArgsConstructor
@@ -25,7 +27,7 @@ public boolean isSupport(AlarmType alarmType) {
2527
@Override
2628
public String provideMessage(DomainType domainType, Long domainId) {
2729
if (domainType != DomainType.STUDY) {
28-
throw new IllegalArgumentException("스터디 종료 7일 전 연장 가능 알림은 STUDY 도메인에만 해당됩니다.");
30+
throw new BusinessException(INVALID_DOMAIN_TYPE_FOR_STUDY_ENDING_ALARM);
2931
}
3032

3133
String studyName = studyRepository.findById(domainId)

src/main/java/grep/neogulcoder/domain/studyapplication/provider/ApplicationApprovedMessageProvider.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
import grep.neogulcoder.domain.recruitment.post.repository.RecruitmentPostRepository;
77
import grep.neogulcoder.domain.studyapplication.StudyApplication;
88
import grep.neogulcoder.domain.studyapplication.repository.ApplicationRepository;
9+
import grep.neogulcoder.global.exception.business.BusinessException;
910
import grep.neogulcoder.global.exception.business.NotFoundException;
1011
import grep.neogulcoder.global.provider.MessageProvidable;
1112
import lombok.RequiredArgsConstructor;
1213
import org.springframework.stereotype.Component;
1314

14-
import static grep.neogulcoder.domain.recruitment.RecruitmentErrorCode.NOT_FOUND;
15-
import static grep.neogulcoder.domain.studyapplication.exception.code.ApplicationErrorCode.APPLICATION_NOT_FOUND;
15+
import static grep.neogulcoder.domain.alram.exception.code.AlarmErrorCode.*;
16+
import static grep.neogulcoder.domain.recruitment.RecruitmentErrorCode.*;
17+
import static grep.neogulcoder.domain.studyapplication.exception.code.ApplicationErrorCode.*;
1618

1719
@Component
1820
@RequiredArgsConstructor
@@ -29,7 +31,7 @@ public boolean isSupport(AlarmType alarmType) {
2931
@Override
3032
public String provideMessage(DomainType domainType, Long domainId) {
3133
if (domainType != DomainType.STUDY_APPLICATION) {
32-
throw new IllegalArgumentException("스터디 신청 승인 알림은 STUDY_APPLICATION 도메인에만 해당됩니다.");
34+
throw new BusinessException(INVALID_DOMAIN_TYPE_FOR_APPLICATION_APPROVED_ALARM);
3335
}
3436

3537
StudyApplication application = applicationRepository.findByIdAndActivatedTrue(domainId)

src/main/java/grep/neogulcoder/domain/studyapplication/provider/ApplicationMessageProvider.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
import grep.neogulcoder.domain.alram.type.DomainType;
55
import grep.neogulcoder.domain.recruitment.post.RecruitmentPost;
66
import grep.neogulcoder.domain.recruitment.post.repository.RecruitmentPostRepository;
7+
import grep.neogulcoder.global.exception.business.BusinessException;
78
import grep.neogulcoder.global.exception.business.NotFoundException;
89
import grep.neogulcoder.global.provider.MessageProvidable;
910
import lombok.RequiredArgsConstructor;
1011
import org.springframework.stereotype.Component;
1112

13+
import static grep.neogulcoder.domain.alram.exception.code.AlarmErrorCode.INVALID_DOMAIN_TYPE_FOR_RECRUITMENT_ALARM;
1214
import static grep.neogulcoder.domain.recruitment.RecruitmentErrorCode.NOT_FOUND;
1315

1416
@Component
@@ -25,7 +27,7 @@ public boolean isSupport(AlarmType alarmType) {
2527
@Override
2628
public String provideMessage(DomainType domainType, Long domainId) {
2729
if (domainType != DomainType.RECRUITMENT_POST) {
28-
throw new IllegalArgumentException("스터디 신청 알림은 RECRUITMENT_POST 도메인에만 해당됩니다.");
30+
throw new BusinessException(INVALID_DOMAIN_TYPE_FOR_RECRUITMENT_ALARM);
2931
}
3032

3133
String recruitmentPostSubject = recruitmentPostRepository.findByIdAndActivatedTrue(domainId)

src/main/java/grep/neogulcoder/domain/studyapplication/provider/ApplicationRejectedMessageProvider.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
import grep.neogulcoder.domain.recruitment.post.repository.RecruitmentPostRepository;
77
import grep.neogulcoder.domain.studyapplication.StudyApplication;
88
import grep.neogulcoder.domain.studyapplication.repository.ApplicationRepository;
9+
import grep.neogulcoder.global.exception.business.BusinessException;
910
import grep.neogulcoder.global.exception.business.NotFoundException;
1011
import grep.neogulcoder.global.provider.MessageProvidable;
1112
import lombok.RequiredArgsConstructor;
1213
import org.springframework.stereotype.Component;
1314

14-
import static grep.neogulcoder.domain.recruitment.RecruitmentErrorCode.NOT_FOUND;
15-
import static grep.neogulcoder.domain.studyapplication.exception.code.ApplicationErrorCode.APPLICATION_NOT_FOUND;
15+
import static grep.neogulcoder.domain.alram.exception.code.AlarmErrorCode.*;
16+
import static grep.neogulcoder.domain.recruitment.RecruitmentErrorCode.*;
17+
import static grep.neogulcoder.domain.studyapplication.exception.code.ApplicationErrorCode.*;
1618

1719
@Component
1820
@RequiredArgsConstructor
@@ -29,7 +31,7 @@ public boolean isSupport(AlarmType alarmType) {
2931
@Override
3032
public String provideMessage(DomainType domainType, Long domainId) {
3133
if (domainType != DomainType.STUDY_APPLICATION) {
32-
throw new IllegalArgumentException("스터디 신청 거절 알림은 STUDY_APPLICATION 도메인에만 해당됩니다.");
34+
throw new BusinessException(INVALID_DOMAIN_TYPE_FOR_APPLICATION_REJECTED_ALARM);
3335
}
3436

3537
StudyApplication application = applicationRepository.findByIdAndActivatedTrue(domainId)

src/main/java/grep/neogulcoder/domain/timevote/provider/TimeVoteMessageProvider.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package grep.neogulcoder.domain.timevote.provider;
22

3-
import static grep.neogulcoder.domain.timevote.exception.code.TimeVoteErrorCode.STUDY_NOT_FOUND;
3+
import static grep.neogulcoder.domain.alram.exception.code.AlarmErrorCode.*;
4+
import static grep.neogulcoder.domain.timevote.exception.code.TimeVoteErrorCode.*;
45

56
import grep.neogulcoder.domain.alram.type.AlarmType;
67
import grep.neogulcoder.domain.alram.type.DomainType;
78
import grep.neogulcoder.domain.study.Study;
89
import grep.neogulcoder.domain.study.repository.StudyRepository;
10+
import grep.neogulcoder.global.exception.business.BusinessException;
911
import grep.neogulcoder.global.exception.business.NotFoundException;
1012
import grep.neogulcoder.global.provider.MessageProvidable;
1113
import lombok.RequiredArgsConstructor;
@@ -25,7 +27,7 @@ public boolean isSupport(AlarmType alarmType) {
2527
@Override
2628
public String provideMessage(DomainType domainType, Long domainId) {
2729
if (domainType != DomainType.TIME_VOTE) {
28-
throw new IllegalArgumentException("시간 투표 요청은 TIME_VOTE 도메인에만 해당됩니다.");
30+
throw new BusinessException(INVALID_DOMAIN_TYPE_FOR_TIME_VOTE_ALARM);
2931
}
3032

3133
Study study = studyRepository.findById(domainId)

0 commit comments

Comments
 (0)