diff --git a/src/main/java/sopt/org/hmh/domain/slack/constant/AttachmentColor.java b/src/main/java/sopt/org/hmh/domain/slack/constant/AttachmentColor.java index d17564bd..231e37f0 100644 --- a/src/main/java/sopt/org/hmh/domain/slack/constant/AttachmentColor.java +++ b/src/main/java/sopt/org/hmh/domain/slack/constant/AttachmentColor.java @@ -1,4 +1,4 @@ -package sopt.org.hmh.domain.slack; +package sopt.org.hmh.domain.slack.constant; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/sopt/org/hmh/domain/slack/constant/SlackStatus.java b/src/main/java/sopt/org/hmh/domain/slack/constant/SlackStatus.java index 6025d7b7..ae9d2dfc 100644 --- a/src/main/java/sopt/org/hmh/domain/slack/constant/SlackStatus.java +++ b/src/main/java/sopt/org/hmh/domain/slack/constant/SlackStatus.java @@ -1,4 +1,4 @@ -package sopt.org.hmh.domain.slack; +package sopt.org.hmh.domain.slack.constant; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/sopt/org/hmh/domain/user/service/UserService.java b/src/main/java/sopt/org/hmh/domain/user/service/UserService.java index 57d9b3ed..4413371d 100644 --- a/src/main/java/sopt/org/hmh/domain/user/service/UserService.java +++ b/src/main/java/sopt/org/hmh/domain/user/service/UserService.java @@ -14,6 +14,8 @@ import sopt.org.hmh.domain.auth.repository.OnboardingInfoRepository; import sopt.org.hmh.domain.auth.repository.ProblemRepository; import sopt.org.hmh.domain.slack.SlackSender; +import sopt.org.hmh.domain.slack.constant.SlackStatus; +import sopt.org.hmh.domain.slack.provider.SlackNewUserNotificationProvider; import sopt.org.hmh.domain.user.domain.User; import sopt.org.hmh.domain.user.domain.UserConstants; import sopt.org.hmh.domain.user.domain.exception.UserError; @@ -30,7 +32,7 @@ public class UserService { private final UserRepository userRepository; private final OnboardingInfoRepository onboardingInfoRepository; private final ProblemRepository problemRepository; - private final SlackSender slackSender; + private final SlackNewUserNotificationProvider slackNewUserNotificationProvider; @Transactional public void withdraw(Long userId) { @@ -67,7 +69,7 @@ public User addUser(SocialPlatform socialPlatform, String socialId, String name, .name(validateName(name)) .build() ); - slackSender.sendNotificationNewUser(name, os); + slackNewUserNotificationProvider.sendNotification(name, os, SlackStatus.NEW_USER_SIGNUP); return user; } diff --git a/src/main/java/sopt/org/hmh/global/auth/security/exception/ExceptionHandlerFilter.java b/src/main/java/sopt/org/hmh/global/auth/security/exception/ExceptionHandlerFilter.java index 6804e38d..f80258b1 100644 --- a/src/main/java/sopt/org/hmh/global/auth/security/exception/ExceptionHandlerFilter.java +++ b/src/main/java/sopt/org/hmh/global/auth/security/exception/ExceptionHandlerFilter.java @@ -15,6 +15,8 @@ import java.io.PrintWriter; import sopt.org.hmh.domain.slack.SlackSender; +import sopt.org.hmh.domain.slack.constant.SlackStatus; +import sopt.org.hmh.domain.slack.provider.SlackErrorNotificationProvider; import sopt.org.hmh.global.auth.jwt.JwtConstants; import sopt.org.hmh.global.auth.jwt.exception.JwtError; import sopt.org.hmh.global.auth.jwt.exception.JwtException; @@ -26,7 +28,7 @@ @Component public class ExceptionHandlerFilter extends OncePerRequestFilter { private final ObjectMapper objectMapper = new ObjectMapper(); - private final SlackSender slackSender; + private final SlackErrorNotificationProvider slackErrorNotificationProvider; @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws IOException { @@ -48,7 +50,7 @@ private void handleUnauthorizedException(HttpServletResponse response, ErrorBase private void handleException(HttpServletResponse response, HttpServletRequest request, Exception e) throws IOException { log.error(">>> Exception Handler Filter : ", e); setResponse(response, HttpStatus.INTERNAL_SERVER_ERROR, JwtError.INTERNAL_SERVER_ERROR); - slackSender.sendNotificationServerInternalError(e, request); + slackErrorNotificationProvider.sendNotification(SlackStatus.INTERNAL_ERROR, e, request); } private void setResponse(HttpServletResponse response, HttpStatus httpStatus, ErrorBase errorMessage) throws IOException { diff --git a/src/main/java/sopt/org/hmh/global/common/exception/CommonControllerAdvice.java b/src/main/java/sopt/org/hmh/global/common/exception/CommonControllerAdvice.java index e1e2bef2..cccd2d24 100644 --- a/src/main/java/sopt/org/hmh/global/common/exception/CommonControllerAdvice.java +++ b/src/main/java/sopt/org/hmh/global/common/exception/CommonControllerAdvice.java @@ -7,22 +7,21 @@ import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import sopt.org.hmh.domain.slack.SlackSender; +import sopt.org.hmh.domain.slack.constant.SlackStatus; +import sopt.org.hmh.domain.slack.provider.SlackErrorNotificationProvider; import sopt.org.hmh.global.common.exception.base.ErrorBase; import sopt.org.hmh.global.common.exception.base.ExceptionBase; import sopt.org.hmh.global.common.response.BaseResponse; -import java.util.Objects; - @ControllerAdvice @RequiredArgsConstructor public class CommonControllerAdvice { - private final SlackSender slackSender; + private final SlackErrorNotificationProvider slackErrorNotificationProvider; @ExceptionHandler(value = ExceptionBase.class) public ResponseEntity exceptionHandler(HttpServletRequest request, HttpServletResponse response, ExceptionBase exception) { - if (!Objects.equals(request.getRemoteAddr(), "0:0:0:0:0:0:0:1")) // 로컬에서 오류 발생 시 전송 X - slackSender.sendNotificationServerRuntimeException(exception, request); + slackErrorNotificationProvider.sendNotification(SlackStatus.CLIENT_ERROR, exception, request); ErrorBase error = exception.getError(); response.setStatus(error.getHttpStatusCode()); diff --git a/src/main/java/sopt/org/hmh/global/config/SecurityConfig.java b/src/main/java/sopt/org/hmh/global/config/SecurityConfig.java index 579c9849..3f8dbe38 100644 --- a/src/main/java/sopt/org/hmh/global/config/SecurityConfig.java +++ b/src/main/java/sopt/org/hmh/global/config/SecurityConfig.java @@ -10,7 +10,7 @@ import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import sopt.org.hmh.domain.slack.SlackSender; +import sopt.org.hmh.domain.slack.provider.SlackErrorNotificationProvider; import sopt.org.hmh.global.auth.jwt.service.JwtProvider; import sopt.org.hmh.global.auth.jwt.service.JwtValidator; import sopt.org.hmh.global.auth.security.JwtAuthenticationEntryPoint; @@ -25,7 +25,7 @@ public class SecurityConfig { private final JwtValidator jwtValidator; private final JwtProvider jwtProvider; private final JwtAuthenticationEntryPoint customJwtAuthenticationEntryPoint; - private final SlackSender slackSender; + private final SlackErrorNotificationProvider slackErrorNotificationProvider; private static final String[] AUTH_WHITELIST = { // Global @@ -63,7 +63,7 @@ public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Excepti authorizationManagerRequestMatcherRegistry .anyRequest().authenticated()) .addFilterBefore(new JwtAuthenticationFilter(jwtValidator, jwtProvider), UsernamePasswordAuthenticationFilter.class) - .addFilterBefore(new ExceptionHandlerFilter(slackSender), JwtAuthenticationFilter.class) + .addFilterBefore(new ExceptionHandlerFilter(slackErrorNotificationProvider), JwtAuthenticationFilter.class) .build(); }