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 @@ -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);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
@RestController
@RequestMapping("/api/v1/auth")
@RequiredArgsConstructor
public class LogoutController implements LogoutApiPresentation{
public class LogoutController implements LogoutApi {

private final SignOutUseCase signOutUseCase;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
@RestController
@RequestMapping("api/v1/auth")
@RequiredArgsConstructor
public class SignInController implements SignInApiPresentation{
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());

Check warning on line 26 in src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInController.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/SignInController.java#L26

Added line #L26 was not covered by tests

ResponseCookie cookie = ResponseCookie.from("refreshToken", signInResult.refreshToken())
.httpOnly(true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,16 @@

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor
public class SignInRequest {
public record SignInRequest (
@NotBlank(message = "아이디를 입력해주세요.")

Check warning on line 7 in src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/request/SignInRequest.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/auth/adapter/in/web/signin/dto/request/SignInRequest.java#L6-L7

Added lines #L6 - L7 were not covered by tests
@Schema(name = "authId", example = "[email protected]")
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;
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,15 @@

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
@RestController
@RequestMapping("api/v1/auth")
@RequiredArgsConstructor
public class TokenController implements TokenApiPresentation{
public class TokenController implements TokenApi {

private final TokenUseCase tokenUseCase;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,12 @@

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
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 (

Check warning on line 7 in src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/dto/response/AccessTokenResponse.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/auth/adapter/in/web/token/dto/response/AccessTokenResponse.java#L7

Added line #L7 was not covered by tests
@Schema(name = "accessToken", example = "eyJJV_adQasvds....")
String accessToken
) {

public static AccessTokenResponse from(String accessToken) {
return AccessTokenResponse
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
package com.ClubAccount_BE.auth.application.dto;

public record SignInResult(String accessToken, String refreshToken, String link) {
public record SignInResult(

Check warning on line 3 in src/main/java/com/ClubAccount_BE/auth/application/dto/SignInResult.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/auth/application/dto/SignInResult.java#L3

Added line #L3 was not covered by tests
String accessToken,
String refreshToken,
String link
) {

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,9 @@
}

private Authentication authenticateCommand(String authId, String password) {
JwtAuthenticationToken authenticationToken =
new JwtAuthenticationToken(authId, password);
JwtAuthenticationToken authenticationToken = new JwtAuthenticationToken(authId, password);

Check warning on line 37 in src/main/java/com/ClubAccount_BE/auth/application/service/SignInService.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/auth/application/service/SignInService.java#L37

Added line #L37 was not covered by tests
Authentication authentication = authenticationManager.authenticate(authenticationToken);
SecurityContextHolder.getContext()
.setAuthentication(authentication);
SecurityContextHolder.getContext().setAuthentication(authentication);

Check warning on line 39 in src/main/java/com/ClubAccount_BE/auth/application/service/SignInService.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/auth/application/service/SignInService.java#L39

Added line #L39 was not covered by tests
return authentication;
}
}
4 changes: 2 additions & 2 deletions src/main/java/com/ClubAccount_BE/core/meta/PasswordMatch.java
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ public interface FindReceiptApi {

@Operation(
summary = "영수증 목록 조회",
description = "시작일과 종료일을 기준으로 파싱된 영수증을 조회한다. "
+ "시작일과 종료일에 정보가 없을 경우 모든 영수증을 조회한다.")
description = "시작일과 종료일을 기준으로 파싱된 영수증을 조회한다. 시작일과 종료일에 정보가 없을 경우 모든 영수증을 조회한다.")
PagingResponse<ReceiptResponse> getReceiptList(
@PathVariable(value = "link") UUID link,
@RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate startDate,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public interface UpdateReceiptApi {
Long updateReceipt(
@LoginUser User user,
@PathVariable("receiptId") Long receiptId,
@Valid @RequestBody ReceiptRequest receiptRequest
@Valid @RequestBody ReceiptRequest request
);

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

@Component
@RequiredArgsConstructor
public class ReceiptImageRepositoryAdapter implements UploadReceiptImagePort, DeleteReceiptImagePort {
public class ReceiptImageAdapter implements UploadReceiptImagePort, DeleteReceiptImagePort {

private final S3Client amazonS3;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Builder;
import lombok.Getter;

//TODO 도메인 로직 변경 예정에 따른 수정 계획 중..
@Getter
public class ReceiptCategoryExpenseResult {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Builder;
import lombok.Getter;

//TODO 도메인 로직 변경 예정에 따른 수정 계획 중..
@Getter
public class ReceiptMonthlyExpenseResult {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Void> sendVerificationEmail(@Valid @RequestBody EmailSendRequest request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@
@RestController
@RequestMapping("/api/v1/email")
@RequiredArgsConstructor
public class EmailController implements EmailApiPresentation {
public class EmailController implements EmailApi {

private final EmailService emailService;

@PostMapping("/send")
@Override
public ResponseEntity<Void> sendVerificationEmail(@RequestBody @Valid EmailSendRequest request) {
emailService.sendVerificationEmail(request.getEmail());
emailService.sendVerificationEmail(request.email());

Check warning on line 22 in src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java#L22

Added line #L22 was not covered by tests
return ResponseEntity.ok().build();
}

@PostMapping(value = "/verify", produces = "application/json")
@Override
public ResponseEntity<EmailVerifyResponse> 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());

Check warning on line 29 in src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/user/adapter/in/email/EmailController.java#L29

Added line #L29 was not covered by tests
return ResponseEntity.ok(new EmailVerifyResponse(verified, verified ? "인증 성공" : "인증 실패"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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 = "[email protected]")
private String email;
}
public record EmailSendRequest(

Check warning on line 7 in src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailSendRequest.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailSendRequest.java#L7

Added line #L7 was not covered by tests
@NotBlank
@Email(message = "유효한 이메일 형식이 아닙니다.")
@Schema(name = "email", example = "[email protected]")
String email
) {}
Original file line number Diff line number Diff line change
Expand Up @@ -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(

Check warning on line 7 in src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailVerifyRequest.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/request/EmailVerifyRequest.java#L7

Added line #L7 was not covered by tests
@NotBlank
@Email(message = "유효한 이메일 형식이 아닙니다.")
@Schema(name = "email", example = "[email protected]")
private String email;
String email,

@NotBlank
@Schema(name = "code", example = "0A0012")
private String code;
}

String code
) {}
Original file line number Diff line number Diff line change
@@ -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(

Check warning on line 3 in src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/response/EmailVerifyResponse.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/user/adapter/in/email/dto/response/EmailVerifyResponse.java#L3

Added line #L3 was not covered by tests
boolean success,
String message
) {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.ClubAccount_BE.user.adapter.in.find.dto.response;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;

@Builder
public record UserAuthIdResponse(

Check warning on line 7 in src/main/java/com/ClubAccount_BE/user/adapter/in/find/dto/response/UserAuthIdResponse.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/user/adapter/in/find/dto/response/UserAuthIdResponse.java#L7

Added line #L7 was not covered by tests
@Schema(name = "authId", example = "[email protected]")
String authId
) {

public static UserAuthIdResponse of(String encryptedAutId) {
return UserAuthIdResponse.builder()
.authId(encryptedAutId)
.build();

Check warning on line 15 in src/main/java/com/ClubAccount_BE/user/adapter/in/find/dto/response/UserAuthIdResponse.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/com/ClubAccount_BE/user/adapter/in/find/dto/response/UserAuthIdResponse.java#L13-L15

Added lines #L13 - L15 were not covered by tests
}
}
Loading