From d865287c37567e45404591b32b68a78c8996ee1d Mon Sep 17 00:00:00 2001 From: JinHyeon Date: Tue, 24 Jun 2025 21:24:42 +0900 Subject: [PATCH 1/4] =?UTF-8?q?TB-34/refactor:=20ApiPresentation=20->=20Ap?= =?UTF-8?q?i=20=EB=A1=9C=20=EC=BB=A8=EB=B2=A4=EC=85=98=20=ED=86=B5?= =?UTF-8?q?=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logout/{LogoutApiPresentation.java => LogoutApi.java} | 2 +- .../auth/adapter/in/web/logout/LogoutController.java | 2 +- .../signin/{SignInApiPresentation.java => SignInApi.java} | 2 +- .../auth/adapter/in/web/signin/SignInController.java | 2 +- .../web/token/{TokenApiPresentation.java => TokenApi.java} | 2 +- .../auth/adapter/in/web/token/TokenController.java | 2 +- .../in/email/{EmailApiPresentation.java => EmailApi.java} | 2 +- .../user/adapter/in/email/EmailController.java | 2 +- .../application/port/in/delete/DeleteProfileUseCase.java | 7 +++++++ .../application/service/delete/DeleteProfileService.java | 4 ++++ 10 files changed, 19 insertions(+), 8 deletions(-) rename src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/{LogoutApiPresentation.java => LogoutApi.java} (92%) rename src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/{SignInApiPresentation.java => SignInApi.java} (94%) rename src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/{TokenApiPresentation.java => TokenApi.java} (91%) rename src/main/java/com/ClubAccount_BE/user/adapter/in/email/{EmailApiPresentation.java => EmailApi.java} (95%) create mode 100644 src/main/java/com/ClubAccount_BE/user/application/port/in/delete/DeleteProfileUseCase.java create mode 100644 src/main/java/com/ClubAccount_BE/user/application/service/delete/DeleteProfileService.java diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/LogoutApiPresentation.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/LogoutApi.java similarity index 92% rename from src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/LogoutApiPresentation.java rename to src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/LogoutApi.java index 5422332..419184d 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/LogoutApiPresentation.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/LogoutApi.java @@ -6,7 +6,7 @@ import jakarta.servlet.http.HttpServletResponse; @Tag(name = "Logout", description = "로그아웃 API") -public interface LogoutApiPresentation { +public interface LogoutApi { @Operation(summary = "로그아웃", description = "리프레시 토큰 쿠키를 제거하여 로그아웃합니다.") void logout(HttpServletRequest request, HttpServletResponse response); } diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/LogoutController.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/LogoutController.java index 86b00f9..46e69c2 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/LogoutController.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/logout/LogoutController.java @@ -17,7 +17,7 @@ @RestController @RequestMapping("/api/v1/auth") @RequiredArgsConstructor -public class LogoutController implements LogoutApiPresentation{ +public class LogoutController implements LogoutApi { private final SignOutUseCase signOutUseCase; diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInApiPresentation.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInApi.java similarity index 94% rename from src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInApiPresentation.java rename to src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInApi.java index 042cd98..585ec6d 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInApiPresentation.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInApi.java @@ -9,7 +9,7 @@ import jakarta.servlet.http.HttpServletResponse; @Tag(name = "SignIn", description = "로그인 API") -public interface SignInApiPresentation { +public interface SignInApi { @Operation(summary = "로그인") TokenResponse signIn(@Valid @RequestBody SignInRequest signInRequest, HttpServletResponse response); diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInController.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInController.java index a59f477..23d0959 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInController.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInController.java @@ -17,7 +17,7 @@ @RestController @RequestMapping("api/v1/auth") @RequiredArgsConstructor -public class SignInController implements SignInApiPresentation{ +public class SignInController implements SignInApi { private final SignInUseCase signInUseCase; diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/TokenApiPresentation.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/TokenApi.java similarity index 91% rename from src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/TokenApiPresentation.java rename to src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/TokenApi.java index 2f2005c..32cce26 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/TokenApiPresentation.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/TokenApi.java @@ -6,6 +6,6 @@ import jakarta.servlet.http.HttpServletResponse; @Tag(name = "Token", description = "토큰 발급 API") -public interface TokenApiPresentation { +public interface TokenApi { AccessTokenResponse createNewToken(HttpServletRequest request, HttpServletResponse response); } \ No newline at end of file diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/TokenController.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/TokenController.java index c943215..d55264d 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/TokenController.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/TokenController.java @@ -17,7 +17,7 @@ @RestController @RequestMapping("api/v1/auth") @RequiredArgsConstructor -public class TokenController implements TokenApiPresentation{ +public class TokenController implements TokenApi { private final TokenUseCase tokenUseCase; diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailApiPresentation.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailApi.java similarity index 95% rename from src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailApiPresentation.java rename to src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailApi.java index 796d66d..3334d08 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailApiPresentation.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailApi.java @@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RequestBody; @Tag(name = "Email", description = "이메일 인증 관련 API") - public interface EmailApiPresentation { + public interface EmailApi { @Operation(summary = "이메일 인증 코드 전송") ResponseEntity sendVerificationEmail(@Valid @RequestBody EmailSendRequest request); diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java index a856088..c384708 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java @@ -12,7 +12,7 @@ @RestController @RequestMapping("/api/v1/email") @RequiredArgsConstructor -public class EmailController implements EmailApiPresentation { +public class EmailController implements EmailApi { private final EmailService emailService; diff --git a/src/main/java/com/ClubAccount_BE/user/application/port/in/delete/DeleteProfileUseCase.java b/src/main/java/com/ClubAccount_BE/user/application/port/in/delete/DeleteProfileUseCase.java new file mode 100644 index 0000000..8b88450 --- /dev/null +++ b/src/main/java/com/ClubAccount_BE/user/application/port/in/delete/DeleteProfileUseCase.java @@ -0,0 +1,7 @@ +package com.ClubAccount_BE.user.application.port.in.delete; + +import com.ClubAccount_BE.user.domain.User; + +public interface DeleteProfileUseCase { + void deleteProfile(User user); +} diff --git a/src/main/java/com/ClubAccount_BE/user/application/service/delete/DeleteProfileService.java b/src/main/java/com/ClubAccount_BE/user/application/service/delete/DeleteProfileService.java new file mode 100644 index 0000000..54872c3 --- /dev/null +++ b/src/main/java/com/ClubAccount_BE/user/application/service/delete/DeleteProfileService.java @@ -0,0 +1,4 @@ +package com.ClubAccount_BE.user.application.service.delete; + +public class DeleteProfileService { +} From 1125b3060521eb002d3e8a0bc5c1e902a5306911 Mon Sep 17 00:00:00 2001 From: JinHyeon Date: Tue, 24 Jun 2025 22:23:16 +0900 Subject: [PATCH 2/4] =?UTF-8?q?TB-34/refactor:=20dto=20=EC=BB=A8=EB=B2=A4?= =?UTF-8?q?=EC=85=A9=20=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../in/web/signin/SignInController.java | 4 +- .../web/signin/dto/request/SignInRequest.java | 15 ++---- .../signin/dto/response/TokenResponse.java | 17 ++----- .../dto/response/AccessTokenResponse.java | 15 ++---- .../auth/application/dto/SignInResult.java | 7 ++- .../application/service/SignInService.java | 6 +-- .../in/web/CreateReceiptController.java | 4 +- .../in/web/UpdateReceiptController.java | 4 +- .../adapter/in/web/api/CreateReceiptApi.java | 2 +- .../adapter/in/web/api/FindReceiptApi.java | 3 +- .../adapter/in/web/api/UpdateReceiptApi.java | 2 +- .../domain/ReceiptCategoryExpenseResult.java | 1 + .../domain/ReceiptMonthlyExpenseResult.java | 1 + .../adapter/in/email/EmailController.java | 6 +-- .../email/dto/request/EmailSendRequest.java | 16 +++--- .../email/dto/request/EmailVerifyRequest.java | 14 ++---- .../dto/response/EmailVerifyResponse.java | 18 ++----- .../dto/response/UserAuthIdResponse.java | 18 ++----- .../user/adapter/in/signup/SignUpApi.java | 2 +- .../adapter/in/signup/SignUpController.java | 4 +- .../in/signup/dto/request/SignUpRequest.java | 50 ++++++++----------- .../response/AuthIdDuplicationResponse.java | 18 ++----- .../validator/PasswordMatchValidator.java | 6 +-- .../user/adapter/in/update/ProfileApi.java | 2 +- .../adapter/in/update/ProfileController.java | 17 ++++--- .../dto/request/PasswordResetRequest.java | 4 +- .../dto/response/PasswordResetResponse.java | 3 -- .../check/CheckAuthIdDuplicationService.java | 5 +- 28 files changed, 103 insertions(+), 161 deletions(-) delete mode 100644 src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/response/PasswordResetResponse.java diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInController.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInController.java index 23d0959..f221964 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInController.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInController.java @@ -22,8 +22,8 @@ public class SignInController implements SignInApi { private final SignInUseCase signInUseCase; @PostMapping("/sign-in") - public TokenResponse signIn(@Valid @RequestBody SignInRequest signInRequest, HttpServletResponse response) { - var signInResult = signInUseCase.signIn(signInRequest.getAuthId(), signInRequest.getPassword()); + public TokenResponse signIn(@Valid @RequestBody SignInRequest request, HttpServletResponse response) { + var signInResult = signInUseCase.signIn(request.authId(), request.password()); ResponseCookie cookie = ResponseCookie.from("refreshToken", signInResult.refreshToken()) .httpOnly(true) diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/request/SignInRequest.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/request/SignInRequest.java index e821db8..146bcf3 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/request/SignInRequest.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/request/SignInRequest.java @@ -6,20 +6,15 @@ import lombok.Getter; import lombok.NoArgsConstructor; -@Getter -@NoArgsConstructor -public class SignInRequest { +public record SignInRequest ( @NotBlank(message = "아이디를 입력해주세요.") @Schema(name = "authId", example = "thinkboo@example.com") - private String authId; + String authId, @NotBlank(message = "비밀번호를 입력해주세요.") @Schema(name = "password", example = "thinkboo1343!") - private String password; + String password +) { - @Builder - private SignInRequest(String authId, String password) { - this.authId = authId; - this.password = password; - } } + diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/response/TokenResponse.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/response/TokenResponse.java index 2d4d560..2b38bcf 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/response/TokenResponse.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/response/TokenResponse.java @@ -5,21 +5,14 @@ import lombok.Getter; import lombok.NoArgsConstructor; -@Getter -@NoArgsConstructor -public class TokenResponse { +@Builder +public record TokenResponse ( @Schema(name = "accessToken", example = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c") - private String accessToken; + String accessToken, @Schema(name = "link", example = "1ecabfde-8574-4c98-a35a-4919c23e1c9f") - private String link; - - @Builder - public TokenResponse(String accessToken, String link) { - this.accessToken = accessToken; - this.link = link; - } - + String link +) { public static TokenResponse of(String accessToken, String link) { return TokenResponse.builder() .accessToken(accessToken) diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/dto/response/AccessTokenResponse.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/dto/response/AccessTokenResponse.java index f073300..142f2d8 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/dto/response/AccessTokenResponse.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/dto/response/AccessTokenResponse.java @@ -5,16 +5,11 @@ import lombok.Getter; import lombok.NoArgsConstructor; -@Getter -@NoArgsConstructor -public class AccessTokenResponse { - @Schema(name = "accessToken", example = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c") - private String accessToken; - - @Builder - private AccessTokenResponse(String accessToken) { - this.accessToken = accessToken; - } +@Builder +public record AccessTokenResponse ( + @Schema(name = "accessToken", example = "eyJJV_adQasvds....") + String accessToken +) { public static AccessTokenResponse from(String accessToken) { return AccessTokenResponse diff --git a/src/main/java/com/ClubAccount_BE/auth/application/dto/SignInResult.java b/src/main/java/com/ClubAccount_BE/auth/application/dto/SignInResult.java index 0b898f3..c45a5eb 100644 --- a/src/main/java/com/ClubAccount_BE/auth/application/dto/SignInResult.java +++ b/src/main/java/com/ClubAccount_BE/auth/application/dto/SignInResult.java @@ -1,4 +1,9 @@ package com.ClubAccount_BE.auth.application.dto; -public record SignInResult(String accessToken, String refreshToken, String link) { +public record SignInResult( + String accessToken, + String refreshToken, + String link +) { + } diff --git a/src/main/java/com/ClubAccount_BE/auth/application/service/SignInService.java b/src/main/java/com/ClubAccount_BE/auth/application/service/SignInService.java index bfc684c..ce40005 100644 --- a/src/main/java/com/ClubAccount_BE/auth/application/service/SignInService.java +++ b/src/main/java/com/ClubAccount_BE/auth/application/service/SignInService.java @@ -34,11 +34,9 @@ public SignInResult signIn(String authId, String password) { } private Authentication authenticateCommand(String authId, String password) { - JwtAuthenticationToken authenticationToken = - new JwtAuthenticationToken(authId, password); + JwtAuthenticationToken authenticationToken = new JwtAuthenticationToken(authId, password); Authentication authentication = authenticationManager.authenticate(authenticationToken); - SecurityContextHolder.getContext() - .setAuthentication(authentication); + SecurityContextHolder.getContext().setAuthentication(authentication); return authentication; } } diff --git a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/CreateReceiptController.java b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/CreateReceiptController.java index 16201b2..4fee3ed 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/CreateReceiptController.java +++ b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/CreateReceiptController.java @@ -24,8 +24,8 @@ public class CreateReceiptController implements CreateReceiptApi { public Long createReceipt( @LoginUser User user, @RequestPart(value = "image", required = false) MultipartFile image, - @Valid @RequestPart(value = "request") ReceiptRequest receiptRequest + @Valid @RequestPart(value = "request") ReceiptRequest request ) { - return createReceiptUseCase.createReceipt(user, image, receiptRequest); + return createReceiptUseCase.createReceipt(user, image, request); } } diff --git a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/UpdateReceiptController.java b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/UpdateReceiptController.java index ba3f823..9efbbee 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/UpdateReceiptController.java +++ b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/UpdateReceiptController.java @@ -24,8 +24,8 @@ public class UpdateReceiptController implements UpdateReceiptApi { public Long updateReceipt( @LoginUser User user, @PathVariable("receiptId") Long receiptId, - @Valid @RequestBody ReceiptRequest receiptRequest + @Valid @RequestBody ReceiptRequest request ) { - return updateReceiptUseCase.updateReceipt(user, receiptId, receiptRequest); + return updateReceiptUseCase.updateReceipt(user, receiptId, request); } } diff --git a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/CreateReceiptApi.java b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/CreateReceiptApi.java index 44e8337..458e436 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/CreateReceiptApi.java +++ b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/CreateReceiptApi.java @@ -16,6 +16,6 @@ public interface CreateReceiptApi { Long createReceipt( @LoginUser User user, @RequestPart(value = "image", required = false) MultipartFile image, - @Valid @RequestPart(value = "request") ReceiptRequest receiptRequest + @Valid @RequestPart(value = "request") ReceiptRequest request ); } diff --git a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/FindReceiptApi.java b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/FindReceiptApi.java index 2f6cea8..f86229e 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/FindReceiptApi.java +++ b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/FindReceiptApi.java @@ -23,8 +23,7 @@ public interface FindReceiptApi { @Operation( summary = "영수증 목록 조회", - description = "시작일과 종료일을 기준으로 파싱된 영수증을 조회한다. " - + "시작일과 종료일에 정보가 없을 경우 모든 영수증을 조회한다.") + description = "시작일과 종료일을 기준으로 파싱된 영수증을 조회한다. 시작일과 종료일에 정보가 없을 경우 모든 영수증을 조회한다.") PagingResponse getReceiptList( @PathVariable(value = "link") UUID link, @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate startDate, diff --git a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/UpdateReceiptApi.java b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/UpdateReceiptApi.java index 4b15ed8..06b5180 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/UpdateReceiptApi.java +++ b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/UpdateReceiptApi.java @@ -16,7 +16,7 @@ public interface UpdateReceiptApi { Long updateReceipt( @LoginUser User user, @PathVariable("receiptId") Long receiptId, - @Valid @RequestBody ReceiptRequest receiptRequest + @Valid @RequestBody ReceiptRequest request ); } diff --git a/src/main/java/com/ClubAccount_BE/receipt/domain/ReceiptCategoryExpenseResult.java b/src/main/java/com/ClubAccount_BE/receipt/domain/ReceiptCategoryExpenseResult.java index 4f6a9b3..2b734ae 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/domain/ReceiptCategoryExpenseResult.java +++ b/src/main/java/com/ClubAccount_BE/receipt/domain/ReceiptCategoryExpenseResult.java @@ -4,6 +4,7 @@ import lombok.Builder; import lombok.Getter; +//TODO 도메인 로직 변경 예정에 따른 수정 계획 중.. @Getter public class ReceiptCategoryExpenseResult { diff --git a/src/main/java/com/ClubAccount_BE/receipt/domain/ReceiptMonthlyExpenseResult.java b/src/main/java/com/ClubAccount_BE/receipt/domain/ReceiptMonthlyExpenseResult.java index a49bc41..5c8f5a9 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/domain/ReceiptMonthlyExpenseResult.java +++ b/src/main/java/com/ClubAccount_BE/receipt/domain/ReceiptMonthlyExpenseResult.java @@ -4,6 +4,7 @@ import lombok.Builder; import lombok.Getter; +//TODO 도메인 로직 변경 예정에 따른 수정 계획 중.. @Getter public class ReceiptMonthlyExpenseResult { diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java index c384708..3f78931 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java @@ -19,14 +19,14 @@ public class EmailController implements EmailApi { @PostMapping("/send") @Override public ResponseEntity sendVerificationEmail(@RequestBody @Valid EmailSendRequest request) { - emailService.sendVerificationEmail(request.getEmail()); + emailService.sendVerificationEmail(request.email()); return ResponseEntity.ok().build(); } @PostMapping(value = "/verify", produces = "application/json") @Override public ResponseEntity verifyCode(@RequestBody @Valid EmailVerifyRequest request) { - boolean verified = emailService.verifyCode(request.getEmail(), request.getCode()); - return ResponseEntity.ok(new EmailVerifyResponse(verified, verified ? "✅ 인증 성공" : "❌ 인증 실패")); + boolean verified = emailService.verifyCode(request.email(), request.code()); + return ResponseEntity.ok(new EmailVerifyResponse(verified, verified ? "인증 성공" : "인증 실패")); } } \ No newline at end of file diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailSendRequest.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailSendRequest.java index beba1de..dca1048 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailSendRequest.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailSendRequest.java @@ -3,14 +3,10 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; -import lombok.Getter; -import lombok.NoArgsConstructor; -@Getter -@NoArgsConstructor -public class EmailSendRequest { - @NotBlank - @Email(message = "유효한 이메일 형식이 아닙니다.") - @Schema(name = "email", example = "thinkboo@example.com") - private String email; -} \ No newline at end of file +public record EmailSendRequest( + @NotBlank + @Email(message = "유효한 이메일 형식이 아닙니다.") + @Schema(name = "email", example = "thinkboo@example.com") + String email +) {} \ No newline at end of file diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailVerifyRequest.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailVerifyRequest.java index 1674425..283c02a 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailVerifyRequest.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailVerifyRequest.java @@ -3,20 +3,14 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -@NoArgsConstructor -public class EmailVerifyRequest { +public record EmailVerifyRequest( @NotBlank @Email(message = "유효한 이메일 형식이 아닙니다.") @Schema(name = "email", example = "thinkboo@example.com") - private String email; + String email, @NotBlank @Schema(name = "code", example = "0A0012") - private String code; -} - + String code +) {} diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/response/EmailVerifyResponse.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/response/EmailVerifyResponse.java index 0f15693..ca078a5 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/response/EmailVerifyResponse.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/response/EmailVerifyResponse.java @@ -1,16 +1,6 @@ package com.ClubAccount_BE.user.adapter.in.email.dto.response; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -@NoArgsConstructor -public class EmailVerifyResponse { - private boolean success; - private String message; - - public EmailVerifyResponse(boolean success, String message) { - this.success = success; - this.message = message; - } -} +public record EmailVerifyResponse( + boolean success, + String message +) {} diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java index 47f8008..79c8fa2 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java @@ -5,19 +5,11 @@ import lombok.Getter; import lombok.NoArgsConstructor; -@Getter -@NoArgsConstructor -public class UserAuthIdResponse { - - @Schema(name = "authId", example = "thinkboo@example.com") - private String authId; - - - @Builder - private UserAuthIdResponse(String authId) { - this.authId = authId; - - } +@Builder +public record UserAuthIdResponse( + @Schema(name = "authId", example = "thinkboo@example.com") + String authId +) { public static UserAuthIdResponse of(String encryptedAutId) { return UserAuthIdResponse.builder() diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpApi.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpApi.java index b2b4e50..f618a03 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpApi.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpApi.java @@ -13,7 +13,7 @@ @Tag(name = "SignUp", description = "회원가입을 진행하는 API") public interface SignUpApi { @Operation(description = "회원가입을 진행한다.") - void signUp(@Valid @RequestBody SignUpRequest signUpRequest); + void signUp(@Valid @RequestBody SignUpRequest request); @Operation(description = "로그인 아이디 중복 여부를 체크한다.") @Parameter(name = "auth-id", description = "아이디") diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpController.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpController.java index f2a63f4..f88c336 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpController.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpController.java @@ -18,8 +18,8 @@ public class SignUpController implements SignUpApi { private final CheckAuthIdDuplicationUseCase checkAuthIdDuplicationUseCase; @PostMapping("/sign-up") - public void signUp(@Valid @RequestBody SignUpRequest signUpRequest) { - signUpUseCase.signUp(signUpRequest.toCommand()); + public void signUp(@Valid @RequestBody SignUpRequest request) { + signUpUseCase.signUp(request.toCommand()); } @GetMapping(value = "/sign-up/check-duplicate-auth-id", produces = "application/json") diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/request/SignUpRequest.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/request/SignUpRequest.java index 98320a2..af1d45e 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/request/SignUpRequest.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/request/SignUpRequest.java @@ -10,36 +10,28 @@ import lombok.Getter; import lombok.NoArgsConstructor; -@Getter +@Builder @PasswordMatch -@NoArgsConstructor -public class SignUpRequest { - - @NotBlank(message = "이메일을 입력해주세요.") - @Email(message = "유효한 이메일 형식이 아닙니다.") - @Schema(name = "authId", example = "thinkboo@example.com") - private String authId; - - @NotBlank(message = "비밀번호를 입력해주세요.") - @Pattern(regexp = "^(?=.*[!@#$%^&*])(?=.*[a-zA-Z0-9]).{8,20}$", message = "INVALIDATED_PASSWORD_TYPE") - @Schema(name = "password", example = "thinkboo1343!") - private String password; - - @NotBlank(message = "비밀번호 확인을 입력해주세요.") - @Pattern(regexp = "^(?=.*[!@#$%^&*])(?=.*[a-zA-Z0-9]).{8,20}$", message = "INVALIDATED_PASSWORD_TYPE") - @Schema(name = "passwordCheck", example = "thinkboo1343!") - private String passwordCheck; - - @NotBlank(message = "조직명을 입력해주세요.") - @Schema(name = "organization", example = "띵부") - private String organization; - - @Builder - private SignUpRequest(String authId, String password, String organization) { - this.authId = authId; - this.password = password; - this.organization = organization; - } +public record SignUpRequest ( + @NotBlank(message = "이메일을 입력해주세요.") + @Email(message = "유효한 이메일 형식이 아닙니다.") + @Schema(name = "authId", example = "thinkboo@example.com") + String authId, + + @NotBlank(message = "비밀번호를 입력해주세요.") + @Pattern(regexp = "^(?=.*[!@#$%^&*])(?=.*[a-zA-Z0-9]).{8,20}$", message = "INVALIDATED_PASSWORD_TYPE") + @Schema(name = "password", example = "thinkboo1343!") + String password, + + @NotBlank(message = "비밀번호 확인을 입력해주세요.") + @Pattern(regexp = "^(?=.*[!@#$%^&*])(?=.*[a-zA-Z0-9]).{8,20}$", message = "INVALIDATED_PASSWORD_TYPE") + @Schema(name = "passwordCheck", example = "thinkboo1343!") + String passwordCheck, + + @NotBlank(message = "조직명을 입력해주세요.") + @Schema(name = "organization", example = "띵부") + String organization +) { public SignUpCommand toCommand() { return SignUpCommand.builder() diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/response/AuthIdDuplicationResponse.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/response/AuthIdDuplicationResponse.java index 333ef77..4725feb 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/response/AuthIdDuplicationResponse.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/response/AuthIdDuplicationResponse.java @@ -1,19 +1,11 @@ package com.ClubAccount_BE.user.adapter.in.signup.dto.response; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Builder; -import lombok.Getter; -@Getter -public class AuthIdDuplicationResponse { +public record AuthIdDuplicationResponse( @Schema(name = "authId", example = "thinkboo@example.com") - private final String authId; - @Schema(name = "notDuplicated", example = "true") - private final boolean notDuplicated; + String authId, - @Builder - private AuthIdDuplicationResponse(String authId, boolean notDuplicated) { - this.authId = authId; - this.notDuplicated = notDuplicated; - } -} \ No newline at end of file + @Schema(name = "notDuplicated", example = "true") + boolean notDuplicated +) {} \ No newline at end of file diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/PasswordMatchValidator.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/PasswordMatchValidator.java index 35f38ed..50a64dd 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/PasswordMatchValidator.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/PasswordMatchValidator.java @@ -13,9 +13,9 @@ public class PasswordMatchValidator implements ConstraintValidator true; - case SignUpRequest request -> request.getPassword() != null - && request.getPasswordCheck() != null - && request.getPassword().equals(request.getPasswordCheck()); + case SignUpRequest request -> request.password() != null + && request.passwordCheck() != null + && request.password().equals(request.passwordCheck()); case PasswordResetRequest request -> request.newPassword() != null && request.confirmPassword() != null && request.newPassword().equals(request.confirmPassword()); diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ProfileApi.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ProfileApi.java index 30d24da..2151fa6 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ProfileApi.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ProfileApi.java @@ -20,7 +20,7 @@ public interface ProfileApi { void updateProfile( @Parameter(hidden = true) User user, @RequestPart(value = "profileImage", required = false) MultipartFile profileImage, - @RequestPart(value = "profile", required = false) @Valid ProfileUpdateRequest dto + @RequestPart(value = "profile", required = false) @Valid ProfileUpdateRequest request ); @Operation(summary = "사용자 링크 재생성", description = "회원 UUID 기반 사용자 링크를 새로 발급합니다.") diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ProfileController.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ProfileController.java index 9ccbcac..3744a1a 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ProfileController.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ProfileController.java @@ -19,11 +19,12 @@ public class ProfileController implements ProfileApi { private final ProfileUseCase profileUseCase; @PatchMapping("/update") - public void updateProfile(@LoginUser User user, - @RequestPart(value = "profileImage", required = false) MultipartFile profileImage, - @RequestPart(value = "profile", required = false) ProfileUpdateRequest profileDto) { - profileUseCase.updateProfile(user, profileImage, profileDto); - + public void updateProfile( + @LoginUser User user, + @RequestPart(value = "profileImage", required = false) MultipartFile profileImage, + @RequestPart(value = "profile", required = false) ProfileUpdateRequest request + ) { + profileUseCase.updateProfile(user, profileImage, request); } @PatchMapping("/regenerate-link") @@ -32,8 +33,10 @@ public void updateLink(@LoginUser User user) { } @PatchMapping("/password") - public void changePassword(@LoginUser User user, - @RequestBody @Valid LoginUserUpdatePassword request) { + public void changePassword( + @LoginUser User user, + @RequestBody @Valid LoginUserUpdatePassword request + ) { profileUseCase.changePassword(user, request.currentPassword(), request.newPassword()); } diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/PasswordResetRequest.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/PasswordResetRequest.java index 98afb3d..b6850e0 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/PasswordResetRequest.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/PasswordResetRequest.java @@ -18,4 +18,6 @@ public record PasswordResetRequest( @NotBlank(message = "비밀번호 확인은 필수입니다.") @Schema(name = "confirmPassword", example = "thinkboo1343!") String confirmPassword -) {} +) { + +} diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/response/PasswordResetResponse.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/response/PasswordResetResponse.java deleted file mode 100644 index f51d2bb..0000000 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/response/PasswordResetResponse.java +++ /dev/null @@ -1,3 +0,0 @@ -package com.ClubAccount_BE.user.adapter.in.update.dto.response; - -public record PasswordResetResponse(String message) {} diff --git a/src/main/java/com/ClubAccount_BE/user/application/service/check/CheckAuthIdDuplicationService.java b/src/main/java/com/ClubAccount_BE/user/application/service/check/CheckAuthIdDuplicationService.java index 5b76536..f9c9334 100644 --- a/src/main/java/com/ClubAccount_BE/user/application/service/check/CheckAuthIdDuplicationService.java +++ b/src/main/java/com/ClubAccount_BE/user/application/service/check/CheckAuthIdDuplicationService.java @@ -17,9 +17,6 @@ class CheckAuthIdDuplicationService implements CheckAuthIdDuplicationUseCase { @Override public AuthIdDuplicationResponse checkAuthIdDuplication(String authId) { boolean authIdDuplication = !checkUserPort.checkDuplicateAuthId(authId); - return AuthIdDuplicationResponse.builder() - .authId(authId) - .notDuplicated(authIdDuplication) - .build(); + return new AuthIdDuplicationResponse(authId, authIdDuplication); } } From abac126f1ac449c0e845c72a9614490fe39e1fd2 Mon Sep 17 00:00:00 2001 From: JinHyeon Date: Tue, 24 Jun 2025 22:25:00 +0900 Subject: [PATCH 3/4] =?UTF-8?q?TB-34/refactor:=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20import=EB=AC=B8=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/adapter/in/web/signin/dto/request/SignInRequest.java | 3 --- .../auth/adapter/in/web/signin/dto/response/TokenResponse.java | 2 -- .../adapter/in/web/token/dto/response/AccessTokenResponse.java | 2 -- .../adapter/in/findauthid/dto/response/UserAuthIdResponse.java | 2 -- .../user/adapter/in/signup/dto/request/SignUpRequest.java | 3 +-- 5 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/request/SignInRequest.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/request/SignInRequest.java index 146bcf3..13ecdfd 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/request/SignInRequest.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/request/SignInRequest.java @@ -2,9 +2,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; public record SignInRequest ( @NotBlank(message = "아이디를 입력해주세요.") diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/response/TokenResponse.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/response/TokenResponse.java index 2b38bcf..e84867f 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/response/TokenResponse.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/response/TokenResponse.java @@ -2,8 +2,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; @Builder public record TokenResponse ( diff --git a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/dto/response/AccessTokenResponse.java b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/dto/response/AccessTokenResponse.java index 142f2d8..c977d4a 100644 --- a/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/dto/response/AccessTokenResponse.java +++ b/src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/dto/response/AccessTokenResponse.java @@ -2,8 +2,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; @Builder public record AccessTokenResponse ( diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java index 79c8fa2..ea95d81 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java @@ -2,8 +2,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; @Builder public record UserAuthIdResponse( diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/request/SignUpRequest.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/request/SignUpRequest.java index af1d45e..4581f65 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/request/SignUpRequest.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/dto/request/SignUpRequest.java @@ -7,8 +7,7 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Pattern; import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; + @Builder @PasswordMatch From f49fb834ac9f85af01a0ece268a2f3698db62850 Mon Sep 17 00:00:00 2001 From: JinHyeon Date: Tue, 24 Jun 2025 23:02:01 +0900 Subject: [PATCH 4/4] =?UTF-8?q?TB-34/refactor:=20=ED=8C=A8=ED=82=A4?= =?UTF-8?q?=EC=A7=80=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ClubAccount_BE/core/meta/PasswordMatch.java | 4 ++-- ...positoryAdapter.java => ReceiptImageAdapter.java} | 2 +- .../dto/response/UserAuthIdResponse.java | 2 +- .../user/adapter/in/signup/SignUpController.java | 4 ++-- ...tchValidator.java => MatchPasswordValidator.java} | 10 ++++------ .../{PasswordResetApi.java => ResetPasswordApi.java} | 6 +++--- ...tController.java => ResetPasswordController.java} | 12 ++++++------ ...rdResetRequest.java => ResetPasswordRequest.java} | 2 +- .../validator/PasswordMatchValidatorForReset.java | 4 ---- ...positoryAdapter.java => ProfileImageAdapter.java} | 2 +- ...stenceAdapter.java => UserRepositoryAdapter.java} | 2 +- .../out/persistence/repository/UserRepository.java | 2 -- ...plicationUseCase.java => CheckAuthIdUseCase.java} | 2 +- ...rdResetUseCase.java => ResetPasswordUseCase.java} | 2 +- ...plicationService.java => CheckAuthIdService.java} | 4 ++-- ...rdResetService.java => ResetPasswordService.java} | 4 ++-- 16 files changed, 28 insertions(+), 36 deletions(-) rename src/main/java/com/ClubAccount_BE/receipt/adapter/out/{ReceiptImageRepositoryAdapter.java => ReceiptImageAdapter.java} (96%) rename src/main/java/com/ClubAccount_BE/user/adapter/in/{findauthid => find}/dto/response/UserAuthIdResponse.java (85%) rename src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/{PasswordMatchValidator.java => MatchPasswordValidator.java} (79%) rename src/main/java/com/ClubAccount_BE/user/adapter/in/update/{PasswordResetApi.java => ResetPasswordApi.java} (65%) rename src/main/java/com/ClubAccount_BE/user/adapter/in/update/{PasswordResetController.java => ResetPasswordController.java} (56%) rename src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/{PasswordResetRequest.java => ResetPasswordRequest.java} (95%) delete mode 100644 src/main/java/com/ClubAccount_BE/user/adapter/in/update/validator/PasswordMatchValidatorForReset.java rename src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/{ProfileImageRepositoryAdapter.java => ProfileImageAdapter.java} (95%) rename src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/{UserPersistenceAdapter.java => UserRepositoryAdapter.java} (97%) rename src/main/java/com/ClubAccount_BE/user/application/port/in/check/{CheckAuthIdDuplicationUseCase.java => CheckAuthIdUseCase.java} (81%) rename src/main/java/com/ClubAccount_BE/user/application/port/in/update/{PasswordResetUseCase.java => ResetPasswordUseCase.java} (75%) rename src/main/java/com/ClubAccount_BE/user/application/service/check/{CheckAuthIdDuplicationService.java => CheckAuthIdService.java} (88%) rename src/main/java/com/ClubAccount_BE/user/application/service/update/{PasswordResetService.java => ResetPasswordService.java} (86%) diff --git a/src/main/java/com/ClubAccount_BE/core/meta/PasswordMatch.java b/src/main/java/com/ClubAccount_BE/core/meta/PasswordMatch.java index a79be15..63d1f96 100644 --- a/src/main/java/com/ClubAccount_BE/core/meta/PasswordMatch.java +++ b/src/main/java/com/ClubAccount_BE/core/meta/PasswordMatch.java @@ -1,13 +1,13 @@ package com.ClubAccount_BE.core.meta; -import com.ClubAccount_BE.user.adapter.in.signup.validator.PasswordMatchValidator; +import com.ClubAccount_BE.user.adapter.in.signup.validator.MatchPasswordValidator; import jakarta.validation.Constraint; import jakarta.validation.Payload; import java.lang.annotation.*; @Documented -@Constraint(validatedBy = PasswordMatchValidator.class) +@Constraint(validatedBy = MatchPasswordValidator.class) @Target({ ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) public @interface PasswordMatch { diff --git a/src/main/java/com/ClubAccount_BE/receipt/adapter/out/ReceiptImageRepositoryAdapter.java b/src/main/java/com/ClubAccount_BE/receipt/adapter/out/ReceiptImageAdapter.java similarity index 96% rename from src/main/java/com/ClubAccount_BE/receipt/adapter/out/ReceiptImageRepositoryAdapter.java rename to src/main/java/com/ClubAccount_BE/receipt/adapter/out/ReceiptImageAdapter.java index 3afcb62..ef7d68a 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/adapter/out/ReceiptImageRepositoryAdapter.java +++ b/src/main/java/com/ClubAccount_BE/receipt/adapter/out/ReceiptImageAdapter.java @@ -21,7 +21,7 @@ @Component @RequiredArgsConstructor -public class ReceiptImageRepositoryAdapter implements UploadReceiptImagePort, DeleteReceiptImagePort { +public class ReceiptImageAdapter implements UploadReceiptImagePort, DeleteReceiptImagePort { private final S3Client amazonS3; diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/find/dto/response/UserAuthIdResponse.java similarity index 85% rename from src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java rename to src/main/java/com/ClubAccount_BE/user/adapter/in/find/dto/response/UserAuthIdResponse.java index ea95d81..907f8fb 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/findauthid/dto/response/UserAuthIdResponse.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/find/dto/response/UserAuthIdResponse.java @@ -1,4 +1,4 @@ -package com.ClubAccount_BE.user.adapter.in.findauthid.dto.response; +package com.ClubAccount_BE.user.adapter.in.find.dto.response; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpController.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpController.java index f88c336..a09dc29 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpController.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/SignUpController.java @@ -2,7 +2,7 @@ import com.ClubAccount_BE.user.adapter.in.signup.dto.request.SignUpRequest; import com.ClubAccount_BE.user.adapter.in.signup.dto.response.AuthIdDuplicationResponse; -import com.ClubAccount_BE.user.application.port.in.check.CheckAuthIdDuplicationUseCase; +import com.ClubAccount_BE.user.application.port.in.check.CheckAuthIdUseCase; import com.ClubAccount_BE.user.application.port.in.signup.SignUpUseCase; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; @@ -15,7 +15,7 @@ @Validated public class SignUpController implements SignUpApi { private final SignUpUseCase signUpUseCase; - private final CheckAuthIdDuplicationUseCase checkAuthIdDuplicationUseCase; + private final CheckAuthIdUseCase checkAuthIdDuplicationUseCase; @PostMapping("/sign-up") public void signUp(@Valid @RequestBody SignUpRequest request) { diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/PasswordMatchValidator.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/MatchPasswordValidator.java similarity index 79% rename from src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/PasswordMatchValidator.java rename to src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/MatchPasswordValidator.java index 50a64dd..9d74c3d 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/PasswordMatchValidator.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/signup/validator/MatchPasswordValidator.java @@ -2,28 +2,26 @@ import com.ClubAccount_BE.core.meta.PasswordMatch; import com.ClubAccount_BE.user.adapter.in.signup.dto.request.SignUpRequest; -import com.ClubAccount_BE.user.adapter.in.update.dto.request.PasswordResetRequest; +import com.ClubAccount_BE.user.adapter.in.update.dto.request.ResetPasswordRequest; import com.ClubAccount_BE.user.adapter.in.update.dto.request.LoginUserUpdatePassword; import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; -public class PasswordMatchValidator implements ConstraintValidator { +public class MatchPasswordValidator implements ConstraintValidator { @Override public boolean isValid(Object value, ConstraintValidatorContext context) { return switch (value) { - case null -> true; case SignUpRequest request -> request.password() != null && request.passwordCheck() != null && request.password().equals(request.passwordCheck()); - case PasswordResetRequest request -> request.newPassword() != null + case ResetPasswordRequest request -> request.newPassword() != null && request.confirmPassword() != null && request.newPassword().equals(request.confirmPassword()); case LoginUserUpdatePassword request -> request.newPassword() != null && request.confirmPassword() != null && request.newPassword().equals(request.confirmPassword()); - default -> - true; + case null, default -> true; }; } } \ No newline at end of file diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/PasswordResetApi.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ResetPasswordApi.java similarity index 65% rename from src/main/java/com/ClubAccount_BE/user/adapter/in/update/PasswordResetApi.java rename to src/main/java/com/ClubAccount_BE/user/adapter/in/update/ResetPasswordApi.java index d8fc959..0dcdeec 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/PasswordResetApi.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ResetPasswordApi.java @@ -1,11 +1,11 @@ package com.ClubAccount_BE.user.adapter.in.update; -import com.ClubAccount_BE.user.adapter.in.update.dto.request.PasswordResetRequest; +import com.ClubAccount_BE.user.adapter.in.update.dto.request.ResetPasswordRequest; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @Tag(name = "Password Reset", description = "비밀번호 재설정 API") -public interface PasswordResetApi { +public interface ResetPasswordApi { @Operation(summary = "비밀번호 재설정", description = "비밀번호를 재설정합니다.") - void resetPassword(PasswordResetRequest request); + void resetPassword(ResetPasswordRequest request); } diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/PasswordResetController.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ResetPasswordController.java similarity index 56% rename from src/main/java/com/ClubAccount_BE/user/adapter/in/update/PasswordResetController.java rename to src/main/java/com/ClubAccount_BE/user/adapter/in/update/ResetPasswordController.java index f89e020..b680b19 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/PasswordResetController.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/ResetPasswordController.java @@ -1,7 +1,7 @@ package com.ClubAccount_BE.user.adapter.in.update; -import com.ClubAccount_BE.user.adapter.in.update.dto.request.PasswordResetRequest; -import com.ClubAccount_BE.user.application.port.in.update.PasswordResetUseCase; +import com.ClubAccount_BE.user.adapter.in.update.dto.request.ResetPasswordRequest; +import com.ClubAccount_BE.user.application.port.in.update.ResetPasswordUseCase; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; @@ -12,13 +12,13 @@ @RestController @RequestMapping("/api/v1/auth") @RequiredArgsConstructor -public class PasswordResetController implements PasswordResetApi { +public class ResetPasswordController implements ResetPasswordApi { - private final PasswordResetUseCase passwordResetUseCase; + private final ResetPasswordUseCase resetPasswordUseCase; @PostMapping("/reset-password") - public void resetPassword(@Valid @RequestBody PasswordResetRequest request) { - passwordResetUseCase.resetPassword(request.authId(), request.newPassword()); + public void resetPassword(@Valid @RequestBody ResetPasswordRequest request) { + resetPasswordUseCase.resetPassword(request.authId(), request.newPassword()); } } diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/PasswordResetRequest.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/ResetPasswordRequest.java similarity index 95% rename from src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/PasswordResetRequest.java rename to src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/ResetPasswordRequest.java index b6850e0..fd7c9b3 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/PasswordResetRequest.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/dto/request/ResetPasswordRequest.java @@ -6,7 +6,7 @@ import jakarta.validation.constraints.NotBlank; @PasswordMatch -public record PasswordResetRequest( +public record ResetPasswordRequest( @NotBlank @Email @Schema(name = "authId", example = "thinkboo@example.com") String authId, diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/validator/PasswordMatchValidatorForReset.java b/src/main/java/com/ClubAccount_BE/user/adapter/in/update/validator/PasswordMatchValidatorForReset.java deleted file mode 100644 index bb4eac0..0000000 --- a/src/main/java/com/ClubAccount_BE/user/adapter/in/update/validator/PasswordMatchValidatorForReset.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.ClubAccount_BE.user.adapter.in.update.validator; - -public class PasswordMatchValidatorForReset { -} diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/ProfileImageRepositoryAdapter.java b/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/ProfileImageAdapter.java similarity index 95% rename from src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/ProfileImageRepositoryAdapter.java rename to src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/ProfileImageAdapter.java index 3c70e60..7e6f68d 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/ProfileImageRepositoryAdapter.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/ProfileImageAdapter.java @@ -21,7 +21,7 @@ @Component @RequiredArgsConstructor -public class ProfileImageRepositoryAdapter implements UploadProfileImagePort, DeleteProfileImagePort { +public class ProfileImageAdapter implements UploadProfileImagePort, DeleteProfileImagePort { private final S3Client amazonS3; private final S3KeyExtractor keyExtractor; diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/UserPersistenceAdapter.java b/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/UserRepositoryAdapter.java similarity index 97% rename from src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/UserPersistenceAdapter.java rename to src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/UserRepositoryAdapter.java index 83ea876..1722f96 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/UserPersistenceAdapter.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/UserRepositoryAdapter.java @@ -19,7 +19,7 @@ @Component @RequiredArgsConstructor -public class UserPersistenceAdapter implements FindUserPort, UserPort, CheckUserPort, +public class UserRepositoryAdapter implements FindUserPort, UserPort, CheckUserPort, FindUserByEmailPort, UpdatePasswordPort, FindUserLinkPort { private final UserRepository userRepository; diff --git a/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/repository/UserRepository.java b/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/repository/UserRepository.java index 7766bdd..63219a8 100644 --- a/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/repository/UserRepository.java +++ b/src/main/java/com/ClubAccount_BE/user/adapter/out/persistence/repository/UserRepository.java @@ -11,8 +11,6 @@ public interface UserRepository extends JpaRepository { Optional getByAuthId(String authId); - Optional findById(Long userId); - boolean existsByAuthId(String authId); Optional findByAuthId(String email); diff --git a/src/main/java/com/ClubAccount_BE/user/application/port/in/check/CheckAuthIdDuplicationUseCase.java b/src/main/java/com/ClubAccount_BE/user/application/port/in/check/CheckAuthIdUseCase.java similarity index 81% rename from src/main/java/com/ClubAccount_BE/user/application/port/in/check/CheckAuthIdDuplicationUseCase.java rename to src/main/java/com/ClubAccount_BE/user/application/port/in/check/CheckAuthIdUseCase.java index 766c2a0..799d177 100644 --- a/src/main/java/com/ClubAccount_BE/user/application/port/in/check/CheckAuthIdDuplicationUseCase.java +++ b/src/main/java/com/ClubAccount_BE/user/application/port/in/check/CheckAuthIdUseCase.java @@ -2,7 +2,7 @@ import com.ClubAccount_BE.user.adapter.in.signup.dto.response.AuthIdDuplicationResponse; -public interface CheckAuthIdDuplicationUseCase { +public interface CheckAuthIdUseCase { AuthIdDuplicationResponse checkAuthIdDuplication(String authId); } diff --git a/src/main/java/com/ClubAccount_BE/user/application/port/in/update/PasswordResetUseCase.java b/src/main/java/com/ClubAccount_BE/user/application/port/in/update/ResetPasswordUseCase.java similarity index 75% rename from src/main/java/com/ClubAccount_BE/user/application/port/in/update/PasswordResetUseCase.java rename to src/main/java/com/ClubAccount_BE/user/application/port/in/update/ResetPasswordUseCase.java index 30fc74c..766f7f5 100644 --- a/src/main/java/com/ClubAccount_BE/user/application/port/in/update/PasswordResetUseCase.java +++ b/src/main/java/com/ClubAccount_BE/user/application/port/in/update/ResetPasswordUseCase.java @@ -1,5 +1,5 @@ package com.ClubAccount_BE.user.application.port.in.update; -public interface PasswordResetUseCase { +public interface ResetPasswordUseCase { void resetPassword(String email, String newPassword); } diff --git a/src/main/java/com/ClubAccount_BE/user/application/service/check/CheckAuthIdDuplicationService.java b/src/main/java/com/ClubAccount_BE/user/application/service/check/CheckAuthIdService.java similarity index 88% rename from src/main/java/com/ClubAccount_BE/user/application/service/check/CheckAuthIdDuplicationService.java rename to src/main/java/com/ClubAccount_BE/user/application/service/check/CheckAuthIdService.java index f9c9334..280c547 100644 --- a/src/main/java/com/ClubAccount_BE/user/application/service/check/CheckAuthIdDuplicationService.java +++ b/src/main/java/com/ClubAccount_BE/user/application/service/check/CheckAuthIdService.java @@ -1,7 +1,7 @@ package com.ClubAccount_BE.user.application.service.check; import com.ClubAccount_BE.user.adapter.in.signup.dto.response.AuthIdDuplicationResponse; -import com.ClubAccount_BE.user.application.port.in.check.CheckAuthIdDuplicationUseCase; +import com.ClubAccount_BE.user.application.port.in.check.CheckAuthIdUseCase; import com.ClubAccount_BE.user.application.port.out.CheckUserPort; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -10,7 +10,7 @@ @Service @Transactional(readOnly = true) @RequiredArgsConstructor -class CheckAuthIdDuplicationService implements CheckAuthIdDuplicationUseCase { +class CheckAuthIdService implements CheckAuthIdUseCase { private final CheckUserPort checkUserPort; diff --git a/src/main/java/com/ClubAccount_BE/user/application/service/update/PasswordResetService.java b/src/main/java/com/ClubAccount_BE/user/application/service/update/ResetPasswordService.java similarity index 86% rename from src/main/java/com/ClubAccount_BE/user/application/service/update/PasswordResetService.java rename to src/main/java/com/ClubAccount_BE/user/application/service/update/ResetPasswordService.java index d9f621c..ed159e4 100644 --- a/src/main/java/com/ClubAccount_BE/user/application/service/update/PasswordResetService.java +++ b/src/main/java/com/ClubAccount_BE/user/application/service/update/ResetPasswordService.java @@ -1,6 +1,6 @@ package com.ClubAccount_BE.user.application.service.update; -import com.ClubAccount_BE.user.application.port.in.update.PasswordResetUseCase; +import com.ClubAccount_BE.user.application.port.in.update.ResetPasswordUseCase; import com.ClubAccount_BE.user.application.port.out.update.FindUserByEmailPort; import com.ClubAccount_BE.user.application.port.out.update.UpdatePasswordPort; import lombok.RequiredArgsConstructor; @@ -11,7 +11,7 @@ @Service @RequiredArgsConstructor @Transactional -public class PasswordResetService implements PasswordResetUseCase { +public class ResetPasswordService implements ResetPasswordUseCase { private final FindUserByEmailPort findUserByEmailPort; private final UpdatePasswordPort updatePasswordPort;