From f607d2075fb8988a6cb2182f06c1e644489ecff1 Mon Sep 17 00:00:00 2001 From: Diger Date: Sun, 11 Feb 2024 23:35:27 +0900 Subject: [PATCH] refactor : response flow --- .../admin/service/AdminBusinessService.java | 34 ++++++-------- .../apilogger/service/ApiLoggerService.java | 47 ++++++------------- .../usw/suwiki/domain/user/user/User.java | 3 ++ .../util/apiresponse/ApiResponseFactory.java | 10 ++++ 4 files changed, 41 insertions(+), 53 deletions(-) diff --git a/src/main/java/usw/suwiki/domain/admin/service/AdminBusinessService.java b/src/main/java/usw/suwiki/domain/admin/service/AdminBusinessService.java index 0cbbbba2..ae5c6b1d 100644 --- a/src/main/java/usw/suwiki/domain/admin/service/AdminBusinessService.java +++ b/src/main/java/usw/suwiki/domain/admin/service/AdminBusinessService.java @@ -1,22 +1,10 @@ package usw.suwiki.domain.admin.service; -import static usw.suwiki.global.exception.ExceptionType.PASSWORD_ERROR; -import static usw.suwiki.global.exception.ExceptionType.USER_RESTRICTED; -import static usw.suwiki.global.util.apiresponse.ApiResponseFactory.successCapitalFlag; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; import lombok.RequiredArgsConstructor; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import usw.suwiki.domain.admin.controller.dto.UserAdminRequestDto.EvaluatePostBlacklistForm; -import usw.suwiki.domain.admin.controller.dto.UserAdminRequestDto.EvaluatePostNoProblemForm; -import usw.suwiki.domain.admin.controller.dto.UserAdminRequestDto.EvaluatePostRestrictForm; -import usw.suwiki.domain.admin.controller.dto.UserAdminRequestDto.ExamPostBlacklistForm; -import usw.suwiki.domain.admin.controller.dto.UserAdminRequestDto.ExamPostNoProblemForm; -import usw.suwiki.domain.admin.controller.dto.UserAdminRequestDto.ExamPostRestrictForm; +import usw.suwiki.domain.admin.controller.dto.UserAdminRequestDto.*; import usw.suwiki.domain.admin.controller.dto.UserAdminResponseDto.LoadAllReportedPostForm; import usw.suwiki.domain.blacklistdomain.service.BlacklistDomainCRUDService; import usw.suwiki.domain.evaluatepost.domain.EvaluatePost; @@ -27,7 +15,6 @@ import usw.suwiki.domain.postreport.ExamPostReport; import usw.suwiki.domain.postreport.service.ReportPostService; import usw.suwiki.domain.restrictinguser.service.RestrictingUserService; -import usw.suwiki.domain.user.user.Role; import usw.suwiki.domain.user.user.User; import usw.suwiki.domain.user.user.controller.dto.UserRequestDto.LoginForm; import usw.suwiki.domain.user.user.service.UserCRUDService; @@ -35,6 +22,14 @@ import usw.suwiki.global.exception.errortype.AccountException; import usw.suwiki.global.jwt.JwtAgent; +import java.util.List; +import java.util.Map; + +import static usw.suwiki.global.exception.ExceptionType.PASSWORD_ERROR; +import static usw.suwiki.global.exception.ExceptionType.USER_RESTRICTED; +import static usw.suwiki.global.util.apiresponse.ApiResponseFactory.adminLoginResponseForm; +import static usw.suwiki.global.util.apiresponse.ApiResponseFactory.successCapitalFlag; + @Service @Transactional @RequiredArgsConstructor @@ -56,16 +51,15 @@ public class AdminBusinessService { public Map executeAdminLogin(LoginForm loginForm) { User user = userCRUDService.loadUserFromLoginId(loginForm.loginId()); if (user.validatePassword(bCryptPasswordEncoder, loginForm.password())) { - if (user.getRole().getKey().equals(Role.ADMIN.getKey())) { - + if (user.isAdmin()) { final long userCount = userCRUDService.countAllUsers(); final long userIsolationCount = userIsolationCRUDService.countAllIsolatedUsers(); final long totalUserCount = userCount + userIsolationCount; - return new HashMap<>() {{ - put("AccessToken", jwtAgent.createAccessToken(user)); - put("UserCount", String.valueOf(totalUserCount)); - }}; + return adminLoginResponseForm( + jwtAgent.createAccessToken(user), + String.valueOf(totalUserCount) + ); } throw new AccountException(USER_RESTRICTED); } diff --git a/src/main/java/usw/suwiki/domain/apilogger/service/ApiLoggerService.java b/src/main/java/usw/suwiki/domain/apilogger/service/ApiLoggerService.java index 01322f93..63b92712 100644 --- a/src/main/java/usw/suwiki/domain/apilogger/service/ApiLoggerService.java +++ b/src/main/java/usw/suwiki/domain/apilogger/service/ApiLoggerService.java @@ -45,23 +45,14 @@ private ApiLogger makeNewApiStatistics( LocalDate today, Long currentProcessTime, String option ) { ApiLogger newApiLogger = new ApiLogger(); - switch (option) { - case lecturePostsOption: - newApiLogger = newApiLogger.saveNewLectureStatistics(today, currentProcessTime); - break; - case evaluatePostsOption: - newApiLogger = newApiLogger.saveNewEvaluatePostsStatistics(today, currentProcessTime); - break; - case examPostsOption: - newApiLogger = newApiLogger.saveNewExamPostsStatistics(today, currentProcessTime); - break; - case userOption: - newApiLogger = newApiLogger.saveNewUserStatistics(today, currentProcessTime); - break; - case noticeOption: - newApiLogger = newApiLogger.saveNewNoticeStatistics(today, currentProcessTime); - break; - } + newApiLogger = switch (option) { + case lecturePostsOption -> newApiLogger.saveNewLectureStatistics(today, currentProcessTime); + case evaluatePostsOption -> newApiLogger.saveNewEvaluatePostsStatistics(today, currentProcessTime); + case examPostsOption -> newApiLogger.saveNewExamPostsStatistics(today, currentProcessTime); + case userOption -> newApiLogger.saveNewUserStatistics(today, currentProcessTime); + case noticeOption -> newApiLogger.saveNewNoticeStatistics(today, currentProcessTime); + default -> newApiLogger; + }; return newApiLogger; } @@ -69,22 +60,12 @@ private ApiLogger makeOldApiStatistics( ApiLogger apiLogger, Long currentProcessTime, String option ) { switch (option) { - case lecturePostsOption: - apiLogger.calculateLectureApiStatistics(currentProcessTime); - break; - case evaluatePostsOption: - apiLogger.calculateEvaluatePostsApiStatistics(currentProcessTime); - break; - case examPostsOption: - apiLogger.calculateExamPostsStatistics(currentProcessTime); - break; - case userOption: - apiLogger.calculateUserApiStatistics(currentProcessTime); - break; - case noticeOption: - apiLogger.calculateNoticeApiStatistics(currentProcessTime); - break; + case lecturePostsOption -> apiLogger.calculateLectureApiStatistics(currentProcessTime); + case evaluatePostsOption -> apiLogger.calculateEvaluatePostsApiStatistics(currentProcessTime); + case examPostsOption -> apiLogger.calculateExamPostsStatistics(currentProcessTime); + case userOption -> apiLogger.calculateUserApiStatistics(currentProcessTime); + case noticeOption -> apiLogger.calculateNoticeApiStatistics(currentProcessTime); } return apiLogger; } -} \ No newline at end of file +} diff --git a/src/main/java/usw/suwiki/domain/user/user/User.java b/src/main/java/usw/suwiki/domain/user/user/User.java index 38df4d16..5e2c6aea 100644 --- a/src/main/java/usw/suwiki/domain/user/user/User.java +++ b/src/main/java/usw/suwiki/domain/user/user/User.java @@ -140,6 +140,9 @@ public void activateUser() { this.role = Role.USER; } + public boolean isAdmin() { + return this.role.getKey().equals(Role.ADMIN); + } /** * Auth diff --git a/src/main/java/usw/suwiki/global/util/apiresponse/ApiResponseFactory.java b/src/main/java/usw/suwiki/global/util/apiresponse/ApiResponseFactory.java index c60ccdd1..e132a80c 100644 --- a/src/main/java/usw/suwiki/global/util/apiresponse/ApiResponseFactory.java +++ b/src/main/java/usw/suwiki/global/util/apiresponse/ApiResponseFactory.java @@ -5,6 +5,16 @@ public class ApiResponseFactory { + public static Map adminLoginResponseForm( + final String accessToken, + final String userCount + ) { + return new HashMap<>() {{ + put("AccessToken", accessToken); + put("UserCount", userCount); + }}; + } + public static Map successFlag() { return new HashMap<>() {{ put("success", true);