Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test:LoginControllerTest.java, UserApiControllerTest.java 테스트 코드 추가 #99

Merged
merged 1 commit into from
Sep 3, 2024
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
@@ -1,6 +1,7 @@
package com.kboticket.controller.login;

import com.kboticket.dto.login.LoginRequestDto;
import com.kboticket.controller.login.dto.LoginRequest;
import com.kboticket.dto.login.LoginDto;
import com.kboticket.service.login.LoginService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
Expand All @@ -9,6 +10,10 @@
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

/**
* @author winnie
*/

@RestController
@RequiredArgsConstructor
public class LoginController {
Expand All @@ -17,8 +22,8 @@ public class LoginController {

@PostMapping("/login")
@ResponseStatus(HttpStatus.OK)
public void login(@RequestBody LoginRequestDto loginRequestDto) {
loginService.login(loginRequestDto);
public void login(@RequestBody LoginRequest request) {
LoginDto loginDto = LoginDto.from(request);
loginService.login(loginDto);
}

}
14 changes: 14 additions & 0 deletions src/main/java/com/kboticket/controller/login/dto/LoginRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.kboticket.controller.login.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

@Builder
@Getter @Setter
@AllArgsConstructor
public class LoginRequest {
private String username;
private String password;
}
23 changes: 14 additions & 9 deletions src/main/java/com/kboticket/controller/user/UserApiController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

import com.kboticket.common.CommonResponse;
import com.kboticket.config.jwt.JwtTokenProvider;
import com.kboticket.controller.user.dto.SmsRequest;
import com.kboticket.dto.SmsRequestDto;
import com.kboticket.dto.TokenDto;
import com.kboticket.dto.user.UserSignupRequest;
import com.kboticket.controller.user.dto.SignupRequest;
import com.kboticket.dto.response.EmailResponse;
import com.kboticket.dto.response.PasswordResponse;
import com.kboticket.dto.response.VerificationResponse;
Expand All @@ -20,6 +21,10 @@
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;

/**
* @author winnie
*/

@Slf4j
@RestController
@RequestMapping("/api/user")
Expand All @@ -36,24 +41,24 @@ public class UserApiController {
*/
@PostMapping("/sms-send")
@ResponseStatus(HttpStatus.OK)
public void sendSms(@RequestBody SmsRequestDto smsRequestDto) {
smsSenderService.sendVeritificationKey(smsRequestDto.getPhone());
public void sendSms(@RequestBody SmsRequest request) {
String phone = request.getPhone();
smsSenderService.sendVeritificationKey(phone);
}


/**
* 인증 번호 확인 후 토큰 발급
*/
@PostMapping("/verify")
public CommonResponse<Void> smsVerification(@RequestBody SmsRequestDto smsRequestDto) {
boolean isValid = smsSenderService.verifySms(smsRequestDto);
public CommonResponse<VerificationResponse> smsVerification(@RequestBody SmsRequest request) {
SmsRequestDto requestDto = SmsRequestDto.from(request);
boolean isValid = smsSenderService.verifySms(requestDto);

if (!isValid) {
throw new KboTicketException(ErrorCode.INVALID_VERIFICATION_CODE);
}

String verificationToken = jwtTokenProvider.generateToken(smsRequestDto.getPhone(), TokenType.ACCESS);
log.info(verificationToken);
String verificationToken = jwtTokenProvider.generateToken(requestDto.getPhone(), TokenType.ACCESS);

return new CommonResponse(new VerificationResponse(verificationToken));
}
Expand All @@ -63,7 +68,7 @@ public CommonResponse<Void> smsVerification(@RequestBody SmsRequestDto smsReques
*/
@PostMapping("/signup")
@ResponseStatus(HttpStatus.CREATED)
public void signup(@RequestBody UserSignupRequest request) {
public void signup(@RequestBody SignupRequest request) {
boolean isAgreeAllMandaotryTerms = termsService.checkAllMandatoryTermsAgreed(request.getTerms());

if (!isAgreeAllMandaotryTerms) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.*;

/**
* @author winnie
*/

@Slf4j
@RestController
Expand All @@ -29,8 +32,6 @@ public class UserController {
*/
@GetMapping("/view")
public CommonResponse<UserDto> getUserInfo(Authentication authentication) {
log.info("authentication.getName()=======>" + authentication.getName());

String email = authentication.getName();
UserDto userDto = userService.getUserDto(email);

Expand Down Expand Up @@ -59,7 +60,6 @@ public void verifyPassword(Authentication authentication,
@ResponseStatus(HttpStatus.OK)
public void updateInfo(Authentication authentication,
@RequestBody UpdateUserRequest request) {

String email = authentication.getName();
UserInfoDto userInfoDto = UserInfoDto.from(request);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.kboticket.dto.user;
package com.kboticket.controller.user.dto;

import com.kboticket.dto.TermsDto;
import jakarta.validation.constraints.*;
Expand All @@ -10,7 +10,7 @@
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
@AllArgsConstructor
public class UserSignupRequest {
public class SignupRequest {

@NotBlank(message = "이메일은 필수 입력 항목입니다.")
@Email(message = "유효하지 않은 이메일 주소입니다.")
Expand All @@ -24,7 +24,7 @@ public class UserSignupRequest {

private String verificationKey;

private List<TermsDto> terms; // TermsRequest
private List<TermsDto> terms;


}
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package com.kboticket.dto.user;
package com.kboticket.controller.user.dto;

import com.kboticket.domain.User;
import lombok.*;

@Getter
@Builder
@AllArgsConstructor
public class UserSignupResponse {
public class SignupResponse {

private String email;

public static UserSignupResponse from(User user) {
return UserSignupResponse.builder()
public static SignupResponse from(User user) {
return SignupResponse.builder()
.email(user.getEmail())
.build();
}
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/com/kboticket/controller/user/dto/SmsRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.kboticket.controller.user.dto;

import lombok.Builder;
import lombok.Getter;

@Builder
@Getter
public class SmsRequest {
private String phone;
private String certificationNumber;
}
15 changes: 12 additions & 3 deletions src/main/java/com/kboticket/dto/SmsRequestDto.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
package com.kboticket.dto;

import com.kboticket.controller.user.dto.SmsRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;

@Data
@Builder
@Getter
@AllArgsConstructor
public class SmsRequestDto {

private String phone;
private String certificationNumber;

public static SmsRequestDto from(SmsRequest request) {
return SmsRequestDto.builder()
.phone(request.getPhone())
.certificationNumber(request.getCertificationNumber())
.build();
}
}
1 change: 0 additions & 1 deletion src/main/java/com/kboticket/dto/TermsDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,4 @@ public class TermsDto {
private String version;
private String content;
private boolean mandatory;

}
27 changes: 27 additions & 0 deletions src/main/java/com/kboticket/dto/login/LoginDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.kboticket.dto.login;


import com.kboticket.controller.login.dto.LoginRequest;
import lombok.*;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

@Builder
@Getter @Setter
@AllArgsConstructor
public class LoginDto {

private String username;
private String password;

public static LoginDto from(LoginRequest request) {
return LoginDto.builder()
.username(request.getUsername())
.password(request.getPassword())
.build();
}

// public void passwordEncryption(BCryptPasswordEncoder bCryptPasswordEncoder){
// this.password = bCryptPasswordEncoder.encode(password);
// }

}
19 changes: 0 additions & 19 deletions src/main/java/com/kboticket/dto/login/LoginRequestDto.java

This file was deleted.

3 changes: 1 addition & 2 deletions src/main/java/com/kboticket/enums/ErrorCode.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public enum ErrorCode {
GENERATE_TEMP_PW_ERR(10013, "Generate temp Password Failed", HttpStatus.CONFLICT),
INCORRECT_PASSWORD(10014, "The password is incorrect", HttpStatus.NOT_FOUND),
INVALID_AUTHORIZATION(10015, "Invalid or missing Authorization", HttpStatus.BAD_REQUEST),

FAILED_GENERATE_TOKEN(10016, "Failed during token creation", HttpStatus.BAD_REQUEST),


/**
Expand Down Expand Up @@ -83,7 +83,6 @@ public enum ErrorCode {
PAYMENT_AMOUNT_EXP(30035, "invalid payment amount", HttpStatus.CONFLICT),
ALREADY_APPROVED(30036, "already approved", HttpStatus.CONFLICT)
;

public final int code;
public final String message;
public final HttpStatus httpcode;
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/com/kboticket/service/login/LoginService.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.kboticket.service.login;

import com.kboticket.config.jwt.JwtTokenProvider;
import com.kboticket.dto.login.LoginRequestDto;
import com.kboticket.dto.login.LoginDto;
import com.kboticket.enums.ErrorCode;
import com.kboticket.enums.TokenType;
import com.kboticket.exception.KboTicketException;
Expand All @@ -25,9 +25,9 @@ public class LoginService {
private final RedisTemplate<String, Object> redisTemplate;

@Transactional
public void login(LoginRequestDto loginRequestDto) {
String email = loginRequestDto.getUsername();
String password = loginRequestDto.getPassword();
public void login(LoginDto loginDto) {
String email = loginDto.getUsername();
String password = loginDto.getPassword();

// 이메일로 존재하는 유저인지 확인
userService.isExistEmail(email);
Expand Down
7 changes: 5 additions & 2 deletions src/main/java/com/kboticket/service/user/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import com.kboticket.dto.user.UserDto;
import com.kboticket.dto.user.UserInfoDto;
import com.kboticket.dto.user.UserPasswordDto;
import com.kboticket.dto.user.UserSignupRequest;
import com.kboticket.controller.user.dto.SignupRequest;
import com.kboticket.enums.ErrorCode;
import com.kboticket.exception.*;
import com.kboticket.repository.terms.TermsRepository;
Expand Down Expand Up @@ -35,7 +35,7 @@ public class UserService {
private final BCryptPasswordEncoder bCryptPasswordEncoder;

@Transactional
public void signup(UserSignupRequest request) {
public void signup(SignupRequest request) {
String email = request.getEmail();
String password = request.getPassword();
String confirmPassword = request.getConfirmpassword();
Expand Down Expand Up @@ -158,9 +158,12 @@ public String findbyPhone(String phone) {

// 기존 비밀 번호 확인
public boolean checkPassword(String email, String inputPassword) {
log.info("storedpassword : " + inputPassword);

Optional<User> optionalUser = userRepository.findByEmail(email);
String storedPassword = optionalUser.get().getPassword();

log.info("storedpassword : " + storedPassword);
return bCryptPasswordEncoder.matches(inputPassword, storedPassword);
}
}
Loading
Loading