Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…o test/#359
  • Loading branch information
LJH098 committed Jul 8, 2024
2 parents c4347cc + 0a53f40 commit 6d46346
Show file tree
Hide file tree
Showing 26 changed files with 943 additions and 240 deletions.
10 changes: 7 additions & 3 deletions BE/exceed/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ dependencies {
testImplementation "org.testcontainers:mariadb:1.19.8"
testImplementation "org.testcontainers:testcontainers:1.19.8"
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
testImplementation "org.junit.jupiter:junit-jupiter:5.8.1"


// querydsl
Expand Down Expand Up @@ -213,7 +212,7 @@ jacocoTestReport {
classDirectories.setFrom(
files(classDirectories.files.collect{
fileTree(dir: it, excludes: [
"**/*Application",
"**/ExceedApplication",
"**/*Config*",
"**/*Request*",
"**/*Response*",
Expand All @@ -222,7 +221,12 @@ jacocoTestReport {
"**/*Docs*",
"**/*DTO*",
"**/common/**",
"**/health/**"
"**/health/**",
"**/*Error*",
"**/*Adapter*",
"**/*Port*",
"**/*Converter*",
"**/Q*"
])
})
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.concurrent.Executor;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
Expand All @@ -11,6 +12,7 @@

@EnableAsync
@Configuration
@Profile("!test")
public class AsyncConfig implements AsyncConfigurer {
@Override
public Executor getAsyncExecutor() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.gaebaljip.exceed.food.adapter.in;

import javax.validation.Valid;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
Expand Down Expand Up @@ -29,7 +31,7 @@ public class CreateFoodController {

@PostMapping("/food")
public ApiResponse<CustomBody<Void>> createFood(
@RequestBody CreateFoodRequest request, @AuthenticationMemberId Long memberId) {
@RequestBody @Valid CreateFoodRequest request, @AuthenticationMemberId Long memberId) {
createFoodUseCase.execute(request, memberId);
return ApiResponseGenerator.success(HttpStatus.OK);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.gaebaljip.exceed.member.adapter.in;

import javax.validation.Valid;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.gaebaljip.exceed.common.ApiResponse;
import com.gaebaljip.exceed.common.ApiResponseGenerator;
import com.gaebaljip.exceed.dto.request.CheckMemberRequest;
import com.gaebaljip.exceed.member.application.port.in.CheckCodeUsecase;

import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;

@RestController
@RequiredArgsConstructor
@RequestMapping("/v1")
@SecurityRequirement(name = "access-token")
@Tag(name = "[회원가입]")
public class CheckMemberEmailController {

private final CheckCodeUsecase checkCodeUsecase;

@GetMapping("/members/checked")
public ApiResponse<ApiResponse.CustomBody<Void>> checkMemberEmail(
@ModelAttribute @Valid CheckMemberRequest checkMemberRequest) {
checkCodeUsecase.execute(checkMemberRequest);
return ApiResponseGenerator.success(HttpStatus.OK);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@ public ApiResponse<CustomBody<Void>> onBoardingMember(
@Parameter(hidden = true) @AuthenticationMemberId Long memberId) {
OnBoardingMemberCommand command = OnBoardingMemberCommand.of(memberId, request);
onBoardingMemberUsecase.execute(command);
return ApiResponseGenerator.success(HttpStatus.CREATED);
return ApiResponseGenerator.success(HttpStatus.OK);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import com.gaebaljip.exceed.common.ApiResponse.CustomBody;
import com.gaebaljip.exceed.common.ApiResponseGenerator;
import com.gaebaljip.exceed.common.swagger.ApiErrorExceptionsExample;
import com.gaebaljip.exceed.dto.request.CheckMemberRequest;
import com.gaebaljip.exceed.dto.request.SignUpMemberRequest;
import com.gaebaljip.exceed.member.application.port.in.*;
import com.gaebaljip.exceed.member.docs.SignUpMemberExceptionDocs;
Expand All @@ -29,8 +28,6 @@ public class SignUpMemberController {
private final ValidateEmailUsecase validateEmailUsecase;
private final SendEmailUsecase sendEmailUsecase;
private final CreateMemberUsecase createMemberUsecase;
private final CheckCodeUsecase checkCodeUsecase;
private final VerifyEmailCheckedUsecase verifyEmailCheckedUsecase;

@Operation(summary = "회원 가입", description = "회원 가입한다.")
@PostMapping("/members")
Expand All @@ -40,21 +37,6 @@ public ApiResponse<CustomBody<Void>> signUpMember(
validateEmailUsecase.execute(new ValidateEmailCommand(signUpMemberRequest.email()));
sendEmailUsecase.execute(new SendEmailCommand(signUpMemberRequest.email()));
createMemberUsecase.execute(signUpMemberRequest);
return ApiResponseGenerator.success(HttpStatus.OK);
}

@GetMapping("/members/checked")
public ApiResponse<CustomBody<Void>> checkMemberEmail(
@ModelAttribute @Valid CheckMemberRequest checkMemberRequest) {
checkCodeUsecase.execute(checkMemberRequest);
return ApiResponseGenerator.success(HttpStatus.OK);
}

@Operation(summary = "회원 가입후 이메일 인증 여부 확인", description = "회원 가입후 이메일 인증 여부 확인한다.")
@GetMapping("/members/email/checked")
public ApiResponse<CustomBody<Boolean>> verifyEmailChecked(
@RequestParam(value = "email") String email) {
Boolean isChecked = verifyEmailCheckedUsecase.execute(email);
return ApiResponseGenerator.success(isChecked, HttpStatus.OK);
return ApiResponseGenerator.success(HttpStatus.CREATED);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.gaebaljip.exceed.member.adapter.in;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.gaebaljip.exceed.common.ApiResponse;
import com.gaebaljip.exceed.common.ApiResponseGenerator;
import com.gaebaljip.exceed.member.application.port.in.VerifyEmailCheckedUsecase;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;

@RestController
@RequiredArgsConstructor
@RequestMapping("/v1")
@SecurityRequirement(name = "access-token")
@Tag(name = "[회원가입]")
public class VerifyEmailCheckedController {

private final VerifyEmailCheckedUsecase verifyEmailCheckedUsecase;

@Operation(summary = "회원 가입후 이메일 인증 여부 확인", description = "회원 가입후 이메일 인증 여부 확인한다.")
@GetMapping("/members/email/checked")
public ApiResponse<ApiResponse.CustomBody<Boolean>> verifyEmailChecked(
@RequestParam(value = "email") String email) {
Boolean isChecked = verifyEmailCheckedUsecase.execute(email);
return ApiResponseGenerator.success(isChecked, HttpStatus.OK);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
import java.time.LocalDateTime;
import java.util.Optional;

import javax.persistence.EntityManager;

import org.springframework.stereotype.Repository;

import com.gaebaljip.exceed.member.adapter.out.persistence.MemberEntity;
Expand All @@ -19,7 +17,7 @@
@Repository
@RequiredArgsConstructor
public class CustomMemberRepositoryImpl implements CustomMemberRepository {
private final EntityManager em;

private final JPAQueryFactory queryFactory;

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class ValidateEmailService implements ValidateEmailUsecase {
@Override
@Transactional
public void execute(ValidateEmailCommand command) {
if (memberPort.existsByEmail(command.email()) || memberPort.isChecked(command.email())) {
if (memberPort.existsByEmail(command.email())) {
throw AlreadySignUpMemberException.EXECPTION;
}
}
Expand Down
Loading

0 comments on commit 6d46346

Please sign in to comment.