Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.time.LocalDateTime;

import jakarta.transaction.Transactional;
import org.springframework.stereotype.Service;

import com.ureca.uplait.domain.auth.api.KakaoOauthClient;
Expand Down Expand Up @@ -81,6 +82,7 @@ public void reissue(String refreshToken, HttpServletResponse response){
jwtProvider.addRefreshTokenCookie(response, newRefreshToken);
}

@Transactional
public void logout(String refreshToken, HttpServletResponse response){

if (!jwtValidator.validateToken(refreshToken)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,24 +44,24 @@ public CommonResponse<Void> addTag(@RequestBody AddTagRequest request, @Authenti
}

@GetMapping("/duplicate/phone")
@Operation(summary="전화번호 중복검사 API", description = "추가정보 입력 시 전화번호 중복 검사를 수행한다.")
@Operation(summary = "전화번호 중복검사 API", description = "추가정보 입력 시 전화번호 중복 검사를 수행한다.")
public CommonResponse<DuplicateResponse> duplicatePhone(
@RequestParam("value")
@Pattern(regexp = "^010-\\d{4}-\\d{4}$", message = "전화번호는 010-xxxx-xxxx 형식이어야 합니다.")
String phoneNumber) {
boolean duplicated = userService.isPhoneNumberDuplicated(phoneNumber);
@RequestParam("value")
@Pattern(regexp = "^010-\\d{4}-\\d{4}$", message = "전화번호는 010-xxxx-xxxx 형식이어야 합니다.") String phoneNumber,
@RequestParam(value = "current", required = false) String currentPhoneNumber
) {
boolean duplicated = userService.isPhoneNumberDuplicated(phoneNumber, currentPhoneNumber);
DuplicateResponse result = new DuplicateResponse(duplicated);
return CommonResponse.success(result);
}

@GetMapping("/duplicate/email")
@Operation(summary="이메일 중복검사 API", description = "추가정보 입력 시 이메일 중복 검사를 수행한다.")
@Operation(summary = "이메일 중복검사 API", description = "추가정보 입력 시 이메일 중복 검사를 수행한다.")
public CommonResponse<DuplicateResponse> duplicateEmail(
@RequestParam("value")
@Email(message = "올바른 이메일 형식이 아닙니다.")
String email
){
boolean duplicated = userService.isEmailDuplicated(email);
@RequestParam("value") @Email(message = "올바른 이메일 형식이 아닙니다.") String email,
@RequestParam(value = "current", required = false) String currentEmail
) {
boolean duplicated = userService.isEmailDuplicated(email, currentEmail);
DuplicateResponse result = new DuplicateResponse(duplicated);
return CommonResponse.success(result);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,17 @@ public void addUserTag(AddTagRequest request, User user) {
}
}

public boolean isPhoneNumberDuplicated(
@Pattern(regexp = "^010-\\d{4}-\\d{4}$", message = "전화번호는 010-xxxx-xxxx 형식이어야 합니다.") String phoneNumber) {
public boolean isPhoneNumberDuplicated(String phoneNumber, String currentPhoneNumber) {
if (phoneNumber.equals(currentPhoneNumber)) {
return false;
}
return userRepository.existsByPhoneNumber(phoneNumber);
}

public boolean isEmailDuplicated(@Email(message = "올바른 이메일 형식이 아닙니다.") String email) {
public boolean isEmailDuplicated(String email, String currentEmail) {
if (email.equals(currentEmail)) {
return false;
}
return userRepository.existsByEmail(email);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.ureca.uplait.domain.admin.service;

import com.ureca.uplait.domain.admin.dto.response.AdminDetailReviewResponse;
import com.ureca.uplait.domain.admin.dto.response.AdminReviewDeleteResponse;
import com.ureca.uplait.domain.admin.dto.response.AdminReviewResponse;
import com.ureca.uplait.domain.plan.entity.MobilePlan;
Expand Down Expand Up @@ -103,16 +104,14 @@ void getAllReviewsForAdmin() {
review1.getUser().getName(),
review1.getTitle(),
review1.getRating(),
"25.06.08",
review1.getContent()
LocalDateTime.now()
);
AdminReviewResponse response2 = new AdminReviewResponse(
review2.getId(),
review2.getUser().getName(),
review2.getTitle(),
review2.getRating(),
"25.06.09",
review2.getContent()
LocalDateTime.now()
);

Page<AdminReviewResponse> page = new PageImpl<>(List.of(response1, response2));
Expand All @@ -138,7 +137,7 @@ void getReviewDetailForAdmin() {
when(reviewRepository.findById(user.getId())).thenReturn(Optional.of(review1));

//when
AdminReviewResponse response = adminReviewService.getReviewDetailForAdmin(user.getId());
AdminDetailReviewResponse response = adminReviewService.getReviewDetailForAdmin(user.getId(), user);

//then
assertEquals(1L, response.getReviewId());
Expand All @@ -157,7 +156,7 @@ void getReviewDetailForAdmin_Exception() {

//when & then
GlobalException exception = assertThrows(GlobalException.class, () -> {
adminReviewService.getReviewDetailForAdmin(review1.getId());
adminReviewService.getReviewDetailForAdmin(review1.getId(), user);
});

assertEquals(ResultCode.REVIEW_NOT_FOUND, exception.getResultCode());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.*;

import com.ureca.uplait.domain.user.dto.request.ExtraInfoRequest;
import com.ureca.uplait.domain.user.entity.User;
Expand Down Expand Up @@ -73,9 +72,10 @@ void updateUserExtraInfo_success() {
@DisplayName("전화번호 중복 - x")
void isPhoneNumberDuplicated_returnsFalse() {
String uniquePhoneNumber = "010-1234-5678";
String currentPhoneNumber = null;
given(userRepository.existsByPhoneNumber(uniquePhoneNumber)).willReturn(false);

boolean isDuplicated = userService.isPhoneNumberDuplicated(uniquePhoneNumber);
boolean isDuplicated = userService.isPhoneNumberDuplicated(uniquePhoneNumber, currentPhoneNumber);

assertThat(isDuplicated).isFalse();
verify(userRepository, times(1)).existsByPhoneNumber(uniquePhoneNumber);
Expand All @@ -85,21 +85,35 @@ void isPhoneNumberDuplicated_returnsFalse() {
@DisplayName("전화번호 중복 - o")
void isPhoneNumberDuplicated_returnsTrue() {
String duplicatedPhoneNumber = "010-9876-5432";
String currentPhoneNumber = null;
given(userRepository.existsByPhoneNumber(duplicatedPhoneNumber)).willReturn(true);

boolean isDuplicated = userService.isPhoneNumberDuplicated(duplicatedPhoneNumber);
boolean isDuplicated = userService.isPhoneNumberDuplicated(duplicatedPhoneNumber, currentPhoneNumber);

assertThat(isDuplicated).isTrue();
verify(userRepository, times(1)).existsByPhoneNumber(duplicatedPhoneNumber);
}

@Test
@DisplayName("전화번호 중복 - 전화번호 변경이 없는 경우")
void isPhoneNumberDuplicated_samePhoneNumber() {
String uniquePhoneNumber = "010-1234-5678";
String currentPhoneNumber = "010-1234-5678";

boolean isDuplicated = userService.isPhoneNumberDuplicated(uniquePhoneNumber, currentPhoneNumber);

assertThat(isDuplicated).isFalse();
verify(userRepository, never()).existsByPhoneNumber(uniquePhoneNumber);
}

@Test
@DisplayName("이메일 중복 - x")
void isEmailDuplicated_returnsFalse() {
String uniqueEmail = "[email protected]";
String currentEmail = null;
given(userRepository.existsByEmail(uniqueEmail)).willReturn(false);

boolean isDuplicated = userService.isEmailDuplicated(uniqueEmail);
boolean isDuplicated = userService.isEmailDuplicated(uniqueEmail, currentEmail);

assertThat(isDuplicated).isFalse();
verify(userRepository, times(1)).existsByEmail(uniqueEmail);
Expand All @@ -109,11 +123,24 @@ void isEmailDuplicated_returnsFalse() {
@DisplayName("이메일 중복 - o")
void isEmailDuplicated_returnsTrue() {
String duplicatedEmail = "[email protected]";
String currentEmail = null;
given(userRepository.existsByEmail(duplicatedEmail)).willReturn(true);

boolean isDuplicated = userService.isEmailDuplicated(duplicatedEmail);
boolean isDuplicated = userService.isEmailDuplicated(duplicatedEmail, currentEmail);

assertThat(isDuplicated).isTrue();
verify(userRepository, times(1)).existsByEmail(duplicatedEmail);
}

@Test
@DisplayName("이메일 중복 - 이메일 변경이 없는 경우")
void isEmailDuplicated_sameEmail() {
String uniqueEmail = "[email protected]";
String currentEmail = "[email protected]";

boolean isDuplicated = userService.isEmailDuplicated(uniqueEmail, currentEmail);

assertThat(isDuplicated).isFalse();
verify(userRepository, never()).existsByEmail(uniqueEmail);
}
}
Loading