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
9 changes: 9 additions & 0 deletions src/main/java/hyu/erica/capstone/domain/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,15 @@ public class User extends BaseEntity {

private String phoneNumber;

// 약관
private boolean termsOfService;

// 개인 정보 동의
private boolean privacyPolicy;

// 마케팅 수신 동의
private boolean marketingAgreement;

@Enumerated(value = STRING)
private ThirdPartyLogin thirdPartyLogin;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ public interface UserCommandService {

String signIn(SignInRequestDTO request);

boolean checkEmail(String email);

void updateInfo(Long userId, UpdateInfoRequestDTO request);

void reissueToken(String refreshToken);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ public Long signUp(SignUpRequestDTO request) {
.password(request.password())
.birthday(request.birthDate())
.phoneService(request.phoneService())
.phoneNumber(request.phoneNumber())
.termsOfService(request.termsOfService())
.privacyPolicy(request.privacyPolicy())
.marketingAgreement(request.marketingAgreement())
.build();

User save = userRepository.save(user);
Expand All @@ -55,6 +59,11 @@ public String signIn(SignInRequestDTO request) {
}
}

@Override
public boolean checkEmail(String email) {
return userRepository.existsByEmail(email);
}

@Override
public void updateInfo(Long userId, UpdateInfoRequestDTO request) {
User user = userRepository.findById(userId).orElseThrow(() -> new GeneralException(ErrorStatus._USER_NOT_FOUND));
Expand Down
54 changes: 30 additions & 24 deletions src/main/java/hyu/erica/capstone/web/controller/UserController.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import hyu.erica.capstone.web.dto.user.request.UpdateInfoRequestDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
Expand All @@ -28,7 +29,7 @@ public class UserController {
private final UserCommandService userCommandService;

// 회원 가입
@Operation(summary = "회원 가입", description = """
@Operation(summary = "[회원 가입]", description = """
### 회원 가입을 진행합니다.

### Request Body
Expand All @@ -38,33 +39,48 @@ public class UserController {
- phoneNumber: 전화번호
- birthDate: 생년월일
- phoneService: 통신사
- termsOfService: 서비스 이용 약관 동의 여부
- privacyPolicy: 개인정보 처리 방침 동의 여부
- marketingAgreement: 마케팅 정보 수신 동의 여부

""")
@PostMapping("/sign-up")
public ApiResponse<?> signUp(
@RequestBody SignUpRequestDTO request
) {
@RequestBody SignUpRequestDTO request) {
return ApiResponse.onSuccess(SuccessStatus._OK, userCommandService.signUp(request));
}

@Operation(summary = "[이메일 중복 확인]", description = """
### 이메일 중복을 확인합니다.

### Request Body
- email: 이메일
""")
@PostMapping("/check-email")
public ApiResponse<?> checkEmail(@RequestBody String email) {
return ApiResponse.onSuccess(SuccessStatus._OK, userCommandService.checkEmail(email));
}

// 로그인
@Operation(summary = "로그인", description = """
### 로그인을 진행합니다.
@Operation(summary = "[로그인]", description = """
### 로그인을 진행합니다. 로그인 성공 시 access-token을 헤더에 포함하여 반환합니다.

### Request Body
- email: 이메일
- password: 비밀번호
""")
@PostMapping("/login")
public ApiResponse<?> login(@RequestBody SignInRequestDTO request) {
return ApiResponse.onSuccess(SuccessStatus._OK, userCommandService.signIn(request));
public ApiResponse<?> login(@RequestBody SignInRequestDTO request, HttpServletResponse response) {
response.setHeader("Authorization", userCommandService.signIn(request));
return ApiResponse.onSuccess(SuccessStatus._OK);
}

// 토큰 재발급
@Operation(summary = "토큰 재발급", description = """
@Operation(summary = "[토큰 재발급]", description = """
### 토큰을 재발급합니다. refresh-token을 이용하여 access-token을 재발급합니다.

### Request Header
- Authorization: Bearer {refresh-token}
- RefreshToken: {refresh-token}
""")
@PostMapping("/reissue-token")
public ApiResponse<?> reissueToken() {
Expand All @@ -73,7 +89,7 @@ public ApiResponse<?> reissueToken() {


// 마이페이지
@Operation(summary = "마이페이지", description = """
@Operation(summary = "[마이 페이지]", description = """
### 마이페이지를 조회합니다.
""")
@GetMapping("/my-page")
Expand All @@ -83,29 +99,19 @@ public ApiResponse<?> myPage() {


// 프로필 수정
@Operation(summary = "프로필 수정", description = """
@Operation(summary = "[프로필 수정]", description = """
### 프로필을 수정합니다.

### Request Body
- nickname: 닉네임
- profileImage: 프로필 이미지
- phoneNumber: 전화번호
""")
@PostMapping("/edit-profile")
@PostMapping("/edit")
public ApiResponse<?> editProfile(
@RequestBody UpdateInfoRequestDTO request
) {
userCommandService.updateInfo(1L, request);
@RequestBody UpdateInfoRequestDTO request) {
userCommandService.updateInfo(SecurityUtils.getCurrentUserId(), request);
return ApiResponse.onSuccess(SuccessStatus._OK);
}


// // 로그아웃
// @Operation(summary = "로그아웃", description = """
// ### 로그아웃을 진행합니다.
// """)
// @PostMapping("/logout")
// public ApiResponse<?> logout() {
// return null;
// }
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
import java.time.LocalDate;

public record SignUpRequestDTO (String email, String password, String name, String phoneNumber, LocalDate birthDate,
PhoneService phoneService) {
PhoneService phoneService, boolean termsOfService, boolean privacyPolicy, boolean marketingAgreement) {

}