From dfaff995bb3e1291e8891c007dfe24bd69042f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=84=80=E1=85=AF=E1=86=AB=E1=84=8C=E1=85=A1=E1=86=BC?= =?UTF-8?q?=E1=84=89=E1=85=AE=E1=86=AB?= Date: Sun, 1 Dec 2024 11:51:02 +0900 Subject: [PATCH] =?UTF-8?q?[=E2=99=BB=EF=B8=8F=20refactor/#173]:=20updateU?= =?UTF-8?q?serFilter=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EB=A6=AC=ED=8C=A9?= =?UTF-8?q?=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/FilterServiceImpl.java | 46 ++++++++++++------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/terning/terningserver/service/FilterServiceImpl.java b/src/main/java/org/terning/terningserver/service/FilterServiceImpl.java index 15c8fe9..6309e04 100644 --- a/src/main/java/org/terning/terningserver/service/FilterServiceImpl.java +++ b/src/main/java/org/terning/terningserver/service/FilterServiceImpl.java @@ -34,28 +34,40 @@ public UserFilterDetailResponseDto getUserFilter(Long userId) { public void updateUserFilter(UpdateUserFilterRequestDto responseDto, Long userId) { User user = findUser(userId); Filter filter = user.getFilter(); - if(filter != null){ - filter.updateFilter( - Grade.fromKey(responseDto.grade()), - WorkingPeriod.fromKey(responseDto.workingPeriod()), - responseDto.startYear(), - responseDto.startMonth() - ); - } else { - Filter savedFilter = filterRepository.save( - Filter.builder() - .grade(Grade.fromKey(responseDto.grade())) - .workingPeriod(WorkingPeriod.fromKey(responseDto.workingPeriod())) - .startYear(responseDto.startYear()) - .startMonth(responseDto.startMonth()) - .build() - ); - user.assignFilter(savedFilter); + + Grade grade = Grade.fromKey(responseDto.grade()); + WorkingPeriod workingPeriod = WorkingPeriod.fromKey(responseDto.workingPeriod()); + + if (filter != null) { + updateExistingFilter(filter, grade, workingPeriod, responseDto); } + + createFilter(user, grade, workingPeriod, responseDto); } private User findUser(Long userId) { return userRepository.findById(userId) .orElseThrow(() -> new CustomException(NOT_FOUND_USER_EXCEPTION)); } + + private void updateExistingFilter(Filter filter, Grade grade, WorkingPeriod workingPeriod, UpdateUserFilterRequestDto dto) { + filter.updateFilter( + grade, + workingPeriod, + dto.startYear(), + dto.startMonth() + ); + } + + private void createFilter(User user, Grade grade, WorkingPeriod workingPeriod, UpdateUserFilterRequestDto dto) { + Filter savedFilter = filterRepository.save( + Filter.builder() + .grade(grade) + .workingPeriod(workingPeriod) + .startYear(dto.startYear()) + .startMonth(dto.startMonth()) + .build() + ); + user.assignFilter(savedFilter); + } }