diff --git a/.github/workflows/develop_build_deploy.yml b/.github/workflows/develop_build_deploy.yml index ccb9e2b..00e8c1c 100644 --- a/.github/workflows/develop_build_deploy.yml +++ b/.github/workflows/develop_build_deploy.yml @@ -43,8 +43,8 @@ jobs: done echo "✅ postgres is ready!" - echo "${{ secrets.SCHEMA_SQL }}" | base64 --decode | docker exec -i $TEST_POSTGRES_CONTAINER_NAME psql -U $TEST_POSTGRES_USER -d $TEST_POSTGRES_DB - echo "${{ secrets.DATA_SQL }}" | base64 --decode | docker exec -i $TEST_POSTGRES_CONTAINER_NAME psql -U $TEST_POSTGRES_USER -d $TEST_POSTGRES_DB + echo "${{ secrets.SCHEMA_SQL }}" | docker exec -i $TEST_POSTGRES_CONTAINER_NAME psql -U $TEST_POSTGRES_USER -d $TEST_POSTGRES_DB + echo "${{ secrets.DATA_SQL }}" | docker exec -i $TEST_POSTGRES_CONTAINER_NAME psql -U $TEST_POSTGRES_USER -d $TEST_POSTGRES_DB # Gradlew 실행 권한 허용 - name: Grant Execute Permission for Gradlew diff --git a/.github/workflows/develop_pull_request.yml b/.github/workflows/develop_pull_request.yml index a28ebc2..08ae798 100644 --- a/.github/workflows/develop_pull_request.yml +++ b/.github/workflows/develop_pull_request.yml @@ -38,8 +38,8 @@ jobs: done echo "✅ postgres is ready!" - echo "${{ secrets.SCHEMA_SQL }}" | base64 --decode | docker exec -i $TEST_POSTGRES_CONTAINER_NAME psql -U $TEST_POSTGRES_USER -d $TEST_POSTGRES_DB - echo "${{ secrets.DATA_SQL }}" | base64 --decode | docker exec -i $TEST_POSTGRES_CONTAINER_NAME psql -U $TEST_POSTGRES_USER -d $TEST_POSTGRES_DB + echo "${{ secrets.SCHEMA_SQL }}" | docker exec -i $TEST_POSTGRES_CONTAINER_NAME psql -U $TEST_POSTGRES_USER -d $TEST_POSTGRES_DB + echo "${{ secrets.DATA_SQL }}" | docker exec -i $TEST_POSTGRES_CONTAINER_NAME psql -U $TEST_POSTGRES_USER -d $TEST_POSTGRES_DB # Gradlew 실행 권한 허용 - name: Grant Execute Permission for Gradlew diff --git a/src/docs/asciidoc/auth.adoc b/src/docs/asciidoc/auth.adoc new file mode 100644 index 0000000..36eb9a1 --- /dev/null +++ b/src/docs/asciidoc/auth.adoc @@ -0,0 +1,15 @@ +=== **1. 유저 로그인** + +유저 로그인 api 입니다. (이메일, 패스워드) + +==== Request +include::{snippetsDir}/loginUser/1/http-request.adoc[] + +==== 성공 Response +include::{snippetsDir}/loginUser/1/http-response.adoc[] + +==== Response Body Fields +include::{snippetsDir}/loginUser/1/response-fields.adoc[] + +==== 실패 Response +include::{snippetsDir}/loginUser/2/http-response.adoc[] \ No newline at end of file diff --git a/src/docs/asciidoc/index.adoc b/src/docs/asciidoc/index.adoc index 091bccd..0881531 100644 --- a/src/docs/asciidoc/index.adoc +++ b/src/docs/asciidoc/index.adoc @@ -4,7 +4,7 @@ :toclevels: 3 :source-highlighter: highlightjs :sectlinks: -:snippetsDir: ../../../build/generated-snippets +:snippetsDir: build/generated-snippets = **FitTheMan API Document** @@ -100,119 +100,12 @@ Content-Type: application/json | 공통 | 500 | INTERNAL_SERVER_ERROR | E500_001 | 서버 측에서 처리하지 못한 예외가 발생하면 모든 api 요청에 대해 공통적으로 반환됨. |=== - - -== 회원 - -=== **1. 이메일 중복 확인** - -이메일 중복을 확인하는 api입니다. - -==== Request -include::{snippetsDir}/emailDuplicationCheck/1/http-request.adoc[] - -==== Request Query Parameter Fields -include::{snippetsDir}/emailDuplicationCheck/1/query-parameters.adoc[] - -==== 성공 Response -include::{snippetsDir}/emailDuplicationCheck/1/http-response.adoc[] - -==== Response Body Fields -include::{snippetsDir}/emailDuplicationCheck/1/response-fields.adoc[] - --- += **회원** -=== **2. 이메일 인증 api** - -이메일 인증용 코드를 발송하는 api입니다. - -==== Request -include::{snippetsDir}/emailAuthentication/1/http-request.adoc[] - -==== Request Body Fields -include::{snippetsDir}/emailAuthentication/1/request-fields.adoc[] - -==== 성공 Response -include::{snippetsDir}/emailAuthentication/1/http-response.adoc[] - -==== Response Body Fields -include::{snippetsDir}/emailAuthentication/1/response-fields.adoc[] - -==== 실패 Response -실패1. -include::{snippetsDir}/emailAuthentication/2/http-response.adoc[] -실패 2 -include::{snippetsDir}/emailAuthentication/3/http-response.adoc[] - - -=== **3. 이메일 인증 코드 검증 api** - -이메일 인증용 코드를 검증하는 api입니다. - -==== Request -include::{snippetsDir}/emailCodeVerification/1/http-request.adoc[] - -==== Request Body Fields -include::{snippetsDir}/emailCodeVerification/1/request-fields.adoc[] - -==== 성공 Response -include::{snippetsDir}/emailCodeVerification/1/http-response.adoc[] - -==== Response Body Fields -include::{snippetsDir}/emailCodeVerification/1/response-fields.adoc[] - - -=== **4. 회원가입시 필요한 정보 목록 조회 api** - -회원가입시 사용자에게 입력 받는 연령대 정보와 관심 해시태그 정보 옵션들을 조회합니다. - - -==== Request -include::{snippetsDir}/userSignupOptions/1/http-request.adoc[] - -==== 성공 Response -include::{snippetsDir}/userSignupOptions/1/http-response.adoc[] - -==== Response Body Fields -include::{snippetsDir}/userSignupOptions/1/response-fields.adoc[] - - -=== **5. 일반 회원가입 api** - -일반 회원가입 api입니다. - -==== Request -include::{snippetsDir}/generalUserSignUp/1/http-request.adoc[] - -==== Request Body Fields -include::{snippetsDir}/generalUserSignUp/1/request-fields.adoc[] - -==== 성공 Response -include::{snippetsDir}/generalUserSignUp/1/http-response.adoc[] - -==== Response Body Fields -include::{snippetsDir}/generalUserSignUp/1/response-fields.adoc[] - -==== 실패 Response -실패1. -include::{snippetsDir}/generalUserSignUp/2/http-response.adoc[] -실패 2 -include::{snippetsDir}/generalUserSignUp/3/http-response.adoc[] -== 인증/인가 - -=== **1. 유저 로그인** - -유저 로그인 api 입니다. (이메일, 패스워드) - -=== Request -include::{snippetsDir}/loginUser/1/http-request.adoc[] - -== 성공 Response -include::{snippetsDir}/loginUser/1/http-response.adoc[] +include::user.adoc[] -== Response Body Fields -include::{snippetsDir}/loginUser/1/response-fields.adoc[] += **인증/인가** -== 실패 Response -include::{snippetsDir}/loginUser/2/http-response.adoc[] \ No newline at end of file +include::auth.adoc[] \ No newline at end of file diff --git a/src/docs/asciidoc/user.adoc b/src/docs/asciidoc/user.adoc new file mode 100644 index 0000000..baaa8d7 --- /dev/null +++ b/src/docs/asciidoc/user.adoc @@ -0,0 +1,97 @@ +=== **1. 이메일 중복 확인** + +이메일 중복을 확인하는 api입니다. + +==== Request +include::{snippetsDir}/emailDuplicationCheck/1/http-request.adoc[] + +==== Request Query Parameter Fields +include::{snippetsDir}/emailDuplicationCheck/1/query-parameters.adoc[] + +==== 성공 Response +include::{snippetsDir}/emailDuplicationCheck/1/http-response.adoc[] + +==== Response Body Fields +include::{snippetsDir}/emailDuplicationCheck/1/response-fields.adoc[] + +--- + +=== **2. 이메일 인증 api** + +이메일 인증용 코드를 발송하는 api입니다. + +==== Request +include::{snippetsDir}/emailAuthentication/1/http-request.adoc[] + +==== Request Body Fields +include::{snippetsDir}/emailAuthentication/1/request-fields.adoc[] + +==== 성공 Response +include::{snippetsDir}/emailAuthentication/1/http-response.adoc[] + +==== Response Body Fields +include::{snippetsDir}/emailAuthentication/1/response-fields.adoc[] + +==== 실패 Response +실패1. +include::{snippetsDir}/emailAuthentication/2/http-response.adoc[] +실패 2 +include::{snippetsDir}/emailAuthentication/3/http-response.adoc[] + +--- + +=== **3. 이메일 인증 코드 검증 api** + +이메일 인증용 코드를 검증하는 api입니다. + +==== Request +include::{snippetsDir}/emailCodeVerification/1/http-request.adoc[] + +==== Request Body Fields +include::{snippetsDir}/emailCodeVerification/1/request-fields.adoc[] + +==== 성공 Response +include::{snippetsDir}/emailCodeVerification/1/http-response.adoc[] + +==== Response Body Fields +include::{snippetsDir}/emailCodeVerification/1/response-fields.adoc[] + +--- + +=== **4. 회원가입시 필요한 정보 목록 조회 api** + +회원가입시 사용자에게 입력 받는 연령대 정보와 관심 해시태그 정보 옵션들을 조회합니다. + + +==== Request +include::{snippetsDir}/userSignupOptions/1/http-request.adoc[] + +==== 성공 Response +include::{snippetsDir}/userSignupOptions/1/http-response.adoc[] + +==== Response Body Fields +include::{snippetsDir}/userSignupOptions/1/response-fields.adoc[] + +--- + +=== **5. 일반 회원가입 api** + +일반 회원가입 api입니다. + +==== Request +include::{snippetsDir}/generalUserSignUp/1/http-request.adoc[] + +==== Request Body Fields +include::{snippetsDir}/generalUserSignUp/1/request-fields.adoc[] + +==== 성공 Response +include::{snippetsDir}/generalUserSignUp/1/http-response.adoc[] + +==== Response Body Fields +include::{snippetsDir}/generalUserSignUp/1/response-fields.adoc[] + +==== 실패 Response +실패1. +include::{snippetsDir}/generalUserSignUp/2/http-response.adoc[] +실패 2 +include::{snippetsDir}/generalUserSignUp/3/http-response.adoc[] \ No newline at end of file diff --git a/src/main/java/com/ftm/server/adapter/gateway/MailSenderGateway.java b/src/main/java/com/ftm/server/adapter/gateway/MailSenderGateway.java deleted file mode 100644 index cb97f90..0000000 --- a/src/main/java/com/ftm/server/adapter/gateway/MailSenderGateway.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.ftm.server.adapter.gateway; - -public interface MailSenderGateway { - - void sendEmail(String to, String code); -} diff --git a/src/main/java/com/ftm/server/adapter/gateway/RedisCacheGateway.java b/src/main/java/com/ftm/server/adapter/gateway/RedisCacheGateway.java deleted file mode 100644 index 19a2b6f..0000000 --- a/src/main/java/com/ftm/server/adapter/gateway/RedisCacheGateway.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.ftm.server.adapter.gateway; - -/** Redis Caching 관련 작업 Gateway */ -public interface RedisCacheGateway {} diff --git a/src/main/java/com/ftm/server/adapter/gateway/RedisSessionGateway.java b/src/main/java/com/ftm/server/adapter/gateway/RedisSessionGateway.java deleted file mode 100644 index 31c06b2..0000000 --- a/src/main/java/com/ftm/server/adapter/gateway/RedisSessionGateway.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.ftm.server.adapter.gateway; - -/** Redis Session 작업 관련 Gateway */ -public interface RedisSessionGateway {} diff --git a/src/main/java/com/ftm/server/domain/dto/command/EmailAuthenticationCommand.java b/src/main/java/com/ftm/server/application/dto/command/EmailAuthenticationCommand.java similarity index 70% rename from src/main/java/com/ftm/server/domain/dto/command/EmailAuthenticationCommand.java rename to src/main/java/com/ftm/server/application/dto/command/EmailAuthenticationCommand.java index 1a5edd6..451a6f6 100644 --- a/src/main/java/com/ftm/server/domain/dto/command/EmailAuthenticationCommand.java +++ b/src/main/java/com/ftm/server/application/dto/command/EmailAuthenticationCommand.java @@ -1,6 +1,6 @@ -package com.ftm.server.domain.dto.command; +package com.ftm.server.application.dto.command; -import com.ftm.server.adapter.dto.request.EmailAuthenticationRequest; +import com.ftm.server.web.dto.request.EmailAuthenticationRequest; import lombok.Data; @Data diff --git a/src/main/java/com/ftm/server/domain/dto/command/EmailVerificationLogCreationCommand.java b/src/main/java/com/ftm/server/application/dto/command/EmailVerificationLogCreationCommand.java similarity index 87% rename from src/main/java/com/ftm/server/domain/dto/command/EmailVerificationLogCreationCommand.java rename to src/main/java/com/ftm/server/application/dto/command/EmailVerificationLogCreationCommand.java index c325ef5..92fc36c 100644 --- a/src/main/java/com/ftm/server/domain/dto/command/EmailVerificationLogCreationCommand.java +++ b/src/main/java/com/ftm/server/application/dto/command/EmailVerificationLogCreationCommand.java @@ -1,4 +1,4 @@ -package com.ftm.server.domain.dto.command; +package com.ftm.server.application.dto.command; import lombok.Data; diff --git a/src/main/java/com/ftm/server/domain/dto/command/GeneralUserCreationCommand.java b/src/main/java/com/ftm/server/application/dto/command/GeneralUserCreationCommand.java similarity index 78% rename from src/main/java/com/ftm/server/domain/dto/command/GeneralUserCreationCommand.java rename to src/main/java/com/ftm/server/application/dto/command/GeneralUserCreationCommand.java index 83f29fb..08fe4d2 100644 --- a/src/main/java/com/ftm/server/domain/dto/command/GeneralUserCreationCommand.java +++ b/src/main/java/com/ftm/server/application/dto/command/GeneralUserCreationCommand.java @@ -1,7 +1,7 @@ -package com.ftm.server.domain.dto.command; +package com.ftm.server.application.dto.command; -import com.ftm.server.entity.enums.AgeGroup; -import com.ftm.server.entity.enums.HashTag; +import com.ftm.server.domain.enums.AgeGroup; +import com.ftm.server.domain.enums.HashTag; import lombok.Data; @Data diff --git a/src/main/java/com/ftm/server/domain/dto/command/GeneralUserSignupCommand.java b/src/main/java/com/ftm/server/application/dto/command/GeneralUserSignupCommand.java similarity index 70% rename from src/main/java/com/ftm/server/domain/dto/command/GeneralUserSignupCommand.java rename to src/main/java/com/ftm/server/application/dto/command/GeneralUserSignupCommand.java index c829063..2df8461 100644 --- a/src/main/java/com/ftm/server/domain/dto/command/GeneralUserSignupCommand.java +++ b/src/main/java/com/ftm/server/application/dto/command/GeneralUserSignupCommand.java @@ -1,8 +1,8 @@ -package com.ftm.server.domain.dto.command; +package com.ftm.server.application.dto.command; -import com.ftm.server.adapter.dto.request.GeneralUserSignupRequest; -import com.ftm.server.entity.enums.AgeGroup; -import com.ftm.server.entity.enums.HashTag; +import com.ftm.server.domain.enums.AgeGroup; +import com.ftm.server.domain.enums.HashTag; +import com.ftm.server.web.dto.request.GeneralUserSignupRequest; import java.util.List; import lombok.Data; diff --git a/src/main/java/com/ftm/server/domain/dto/command/UserLoginCommand.java b/src/main/java/com/ftm/server/application/dto/command/UserLoginCommand.java similarity index 80% rename from src/main/java/com/ftm/server/domain/dto/command/UserLoginCommand.java rename to src/main/java/com/ftm/server/application/dto/command/UserLoginCommand.java index e002c22..616a79c 100644 --- a/src/main/java/com/ftm/server/domain/dto/command/UserLoginCommand.java +++ b/src/main/java/com/ftm/server/application/dto/command/UserLoginCommand.java @@ -1,6 +1,6 @@ -package com.ftm.server.domain.dto.command; +package com.ftm.server.application.dto.command; -import com.ftm.server.adapter.dto.request.UserLoginRequest; +import com.ftm.server.web.dto.request.UserLoginRequest; import lombok.Getter; @Getter diff --git a/src/main/java/com/ftm/server/domain/dto/query/EmailCodeVerificationQuery.java b/src/main/java/com/ftm/server/application/dto/query/EmailCodeVerificationQuery.java similarity index 73% rename from src/main/java/com/ftm/server/domain/dto/query/EmailCodeVerificationQuery.java rename to src/main/java/com/ftm/server/application/dto/query/EmailCodeVerificationQuery.java index 93e9aae..cf70458 100644 --- a/src/main/java/com/ftm/server/domain/dto/query/EmailCodeVerificationQuery.java +++ b/src/main/java/com/ftm/server/application/dto/query/EmailCodeVerificationQuery.java @@ -1,6 +1,6 @@ -package com.ftm.server.domain.dto.query; +package com.ftm.server.application.dto.query; -import com.ftm.server.adapter.dto.request.EmailCodeVerificationRequest; +import com.ftm.server.web.dto.request.EmailCodeVerificationRequest; import lombok.Data; @Data diff --git a/src/main/java/com/ftm/server/domain/dto/query/FindByEmailQuery.java b/src/main/java/com/ftm/server/application/dto/query/FindByEmailQuery.java similarity index 95% rename from src/main/java/com/ftm/server/domain/dto/query/FindByEmailQuery.java rename to src/main/java/com/ftm/server/application/dto/query/FindByEmailQuery.java index 2aa433e..11d26f1 100644 --- a/src/main/java/com/ftm/server/domain/dto/query/FindByEmailQuery.java +++ b/src/main/java/com/ftm/server/application/dto/query/FindByEmailQuery.java @@ -1,4 +1,4 @@ -package com.ftm.server.domain.dto.query; +package com.ftm.server.application.dto.query; import com.ftm.server.common.exception.CustomException; import com.ftm.server.common.response.enums.ErrorResponseCode; diff --git a/src/main/java/com/ftm/server/domain/dto/query/FindByIdQuery.java b/src/main/java/com/ftm/server/application/dto/query/FindByIdQuery.java similarity index 84% rename from src/main/java/com/ftm/server/domain/dto/query/FindByIdQuery.java rename to src/main/java/com/ftm/server/application/dto/query/FindByIdQuery.java index d7749df..a13171a 100644 --- a/src/main/java/com/ftm/server/domain/dto/query/FindByIdQuery.java +++ b/src/main/java/com/ftm/server/application/dto/query/FindByIdQuery.java @@ -1,4 +1,4 @@ -package com.ftm.server.domain.dto.query; +package com.ftm.server.application.dto.query; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/domain/dto/query/FindByUserIdQuery.java b/src/main/java/com/ftm/server/application/dto/query/FindByUserIdQuery.java similarity index 86% rename from src/main/java/com/ftm/server/domain/dto/query/FindByUserIdQuery.java rename to src/main/java/com/ftm/server/application/dto/query/FindByUserIdQuery.java index 0d2ff8d..2d0c165 100644 --- a/src/main/java/com/ftm/server/domain/dto/query/FindByUserIdQuery.java +++ b/src/main/java/com/ftm/server/application/dto/query/FindByUserIdQuery.java @@ -1,4 +1,4 @@ -package com.ftm.server.domain.dto.query; +package com.ftm.server.application.dto.query; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/domain/dto/query/FindEmailVerificationLogsByEmailQuery.java b/src/main/java/com/ftm/server/application/dto/query/FindEmailVerificationLogsByEmailQuery.java similarity index 85% rename from src/main/java/com/ftm/server/domain/dto/query/FindEmailVerificationLogsByEmailQuery.java rename to src/main/java/com/ftm/server/application/dto/query/FindEmailVerificationLogsByEmailQuery.java index 4cfea25..fd48336 100644 --- a/src/main/java/com/ftm/server/domain/dto/query/FindEmailVerificationLogsByEmailQuery.java +++ b/src/main/java/com/ftm/server/application/dto/query/FindEmailVerificationLogsByEmailQuery.java @@ -1,4 +1,4 @@ -package com.ftm.server.domain.dto.query; +package com.ftm.server.application.dto.query; import lombok.Data; diff --git a/src/main/java/com/ftm/server/adapter/gateway/AuthenticationGateway.java b/src/main/java/com/ftm/server/application/port/AuthenticationPort.java similarity index 80% rename from src/main/java/com/ftm/server/adapter/gateway/AuthenticationGateway.java rename to src/main/java/com/ftm/server/application/port/AuthenticationPort.java index e4d231a..a9b34cc 100644 --- a/src/main/java/com/ftm/server/adapter/gateway/AuthenticationGateway.java +++ b/src/main/java/com/ftm/server/application/port/AuthenticationPort.java @@ -1,12 +1,12 @@ -package com.ftm.server.adapter.gateway; +package com.ftm.server.application.port; -import com.ftm.server.domain.dto.command.UserLoginCommand; +import com.ftm.server.application.dto.command.UserLoginCommand; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.security.core.Authentication; /** 시큐리티 인증 관련 작업 Gateway */ -public interface AuthenticationGateway { +public interface AuthenticationPort { // 일반 유저 인증 객체 생성 Authentication createAuthenticationFromCredentials(UserLoginCommand command); diff --git a/src/main/java/com/ftm/server/application/port/MailSenderPort.java b/src/main/java/com/ftm/server/application/port/MailSenderPort.java new file mode 100644 index 0000000..cf19bfb --- /dev/null +++ b/src/main/java/com/ftm/server/application/port/MailSenderPort.java @@ -0,0 +1,6 @@ +package com.ftm.server.application.port; + +public interface MailSenderPort { + + void sendEmail(String to, String code); +} diff --git a/src/main/java/com/ftm/server/application/port/RedisCachePort.java b/src/main/java/com/ftm/server/application/port/RedisCachePort.java new file mode 100644 index 0000000..9b0ce92 --- /dev/null +++ b/src/main/java/com/ftm/server/application/port/RedisCachePort.java @@ -0,0 +1,4 @@ +package com.ftm.server.application.port; + +/** Redis Caching 관련 작업 Gateway */ +public interface RedisCachePort {} diff --git a/src/main/java/com/ftm/server/application/port/RedisSessionPort.java b/src/main/java/com/ftm/server/application/port/RedisSessionPort.java new file mode 100644 index 0000000..c721a96 --- /dev/null +++ b/src/main/java/com/ftm/server/application/port/RedisSessionPort.java @@ -0,0 +1,4 @@ +package com.ftm.server.application.port; + +/** Redis Session 작업 관련 Gateway */ +public interface RedisSessionPort {} diff --git a/src/main/java/com/ftm/server/adapter/gateway/repository/EmailVerificationLogsRepository.java b/src/main/java/com/ftm/server/application/port/repository/EmailVerificationLogsRepository.java similarity index 83% rename from src/main/java/com/ftm/server/adapter/gateway/repository/EmailVerificationLogsRepository.java rename to src/main/java/com/ftm/server/application/port/repository/EmailVerificationLogsRepository.java index 0c2c168..46864cc 100644 --- a/src/main/java/com/ftm/server/adapter/gateway/repository/EmailVerificationLogsRepository.java +++ b/src/main/java/com/ftm/server/application/port/repository/EmailVerificationLogsRepository.java @@ -1,6 +1,6 @@ -package com.ftm.server.adapter.gateway.repository; +package com.ftm.server.application.port.repository; -import com.ftm.server.entity.entities.EmailVerificationLogs; +import com.ftm.server.domain.entity.EmailVerificationLogs; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/src/main/java/com/ftm/server/adapter/gateway/repository/UserImageRepository.java b/src/main/java/com/ftm/server/application/port/repository/UserImageRepository.java similarity index 69% rename from src/main/java/com/ftm/server/adapter/gateway/repository/UserImageRepository.java rename to src/main/java/com/ftm/server/application/port/repository/UserImageRepository.java index 9dbbbfe..c3d828c 100644 --- a/src/main/java/com/ftm/server/adapter/gateway/repository/UserImageRepository.java +++ b/src/main/java/com/ftm/server/application/port/repository/UserImageRepository.java @@ -1,6 +1,6 @@ -package com.ftm.server.adapter.gateway.repository; +package com.ftm.server.application.port.repository; -import com.ftm.server.entity.entities.UserImage; +import com.ftm.server.domain.entity.UserImage; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/com/ftm/server/adapter/gateway/repository/UserRepository.java b/src/main/java/com/ftm/server/application/port/repository/UserRepository.java similarity index 72% rename from src/main/java/com/ftm/server/adapter/gateway/repository/UserRepository.java rename to src/main/java/com/ftm/server/application/port/repository/UserRepository.java index c78670a..1cd7390 100644 --- a/src/main/java/com/ftm/server/adapter/gateway/repository/UserRepository.java +++ b/src/main/java/com/ftm/server/application/port/repository/UserRepository.java @@ -1,6 +1,6 @@ -package com.ftm.server.adapter.gateway.repository; +package com.ftm.server.application.port.repository; -import com.ftm.server.entity.entities.User; +import com.ftm.server.domain.entity.User; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/com/ftm/server/domain/service/EmailVerificationLogsService.java b/src/main/java/com/ftm/server/application/service/EmailVerificationLogsService.java similarity index 70% rename from src/main/java/com/ftm/server/domain/service/EmailVerificationLogsService.java rename to src/main/java/com/ftm/server/application/service/EmailVerificationLogsService.java index ba90172..78c2bc9 100644 --- a/src/main/java/com/ftm/server/domain/service/EmailVerificationLogsService.java +++ b/src/main/java/com/ftm/server/application/service/EmailVerificationLogsService.java @@ -1,11 +1,11 @@ -package com.ftm.server.domain.service; +package com.ftm.server.application.service; -import com.ftm.server.adapter.gateway.repository.EmailVerificationLogsRepository; -import com.ftm.server.domain.dto.command.EmailVerificationLogCreationCommand; -import com.ftm.server.domain.dto.query.EmailCodeVerificationQuery; -import com.ftm.server.domain.dto.query.FindByEmailQuery; -import com.ftm.server.domain.dto.query.FindEmailVerificationLogsByEmailQuery; -import com.ftm.server.entity.entities.EmailVerificationLogs; +import com.ftm.server.application.dto.command.EmailVerificationLogCreationCommand; +import com.ftm.server.application.dto.query.EmailCodeVerificationQuery; +import com.ftm.server.application.dto.query.FindByEmailQuery; +import com.ftm.server.application.dto.query.FindEmailVerificationLogsByEmailQuery; +import com.ftm.server.application.port.repository.EmailVerificationLogsRepository; +import com.ftm.server.domain.entity.EmailVerificationLogs; import java.util.Optional; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/ftm/server/domain/service/UserImageService.java b/src/main/java/com/ftm/server/application/service/UserImageService.java similarity index 73% rename from src/main/java/com/ftm/server/domain/service/UserImageService.java rename to src/main/java/com/ftm/server/application/service/UserImageService.java index 30170dd..1454adb 100644 --- a/src/main/java/com/ftm/server/domain/service/UserImageService.java +++ b/src/main/java/com/ftm/server/application/service/UserImageService.java @@ -1,11 +1,11 @@ -package com.ftm.server.domain.service; +package com.ftm.server.application.service; -import com.ftm.server.adapter.gateway.repository.UserImageRepository; +import com.ftm.server.application.dto.query.FindByUserIdQuery; +import com.ftm.server.application.port.repository.UserImageRepository; import com.ftm.server.common.exception.CustomException; import com.ftm.server.common.response.enums.ErrorResponseCode; -import com.ftm.server.domain.dto.query.FindByUserIdQuery; -import com.ftm.server.entity.entities.User; -import com.ftm.server.entity.entities.UserImage; +import com.ftm.server.domain.entity.User; +import com.ftm.server.domain.entity.UserImage; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/ftm/server/domain/service/UserService.java b/src/main/java/com/ftm/server/application/service/UserService.java similarity index 71% rename from src/main/java/com/ftm/server/domain/service/UserService.java rename to src/main/java/com/ftm/server/application/service/UserService.java index 0141fe9..b8cc985 100644 --- a/src/main/java/com/ftm/server/domain/service/UserService.java +++ b/src/main/java/com/ftm/server/application/service/UserService.java @@ -1,12 +1,12 @@ -package com.ftm.server.domain.service; +package com.ftm.server.application.service; -import com.ftm.server.adapter.gateway.repository.UserRepository; +import com.ftm.server.application.dto.command.GeneralUserCreationCommand; +import com.ftm.server.application.dto.query.FindByEmailQuery; +import com.ftm.server.application.dto.query.FindByIdQuery; +import com.ftm.server.application.port.repository.UserRepository; import com.ftm.server.common.exception.CustomException; -import com.ftm.server.domain.dto.command.GeneralUserCreationCommand; -import com.ftm.server.domain.dto.query.FindByEmailQuery; -import com.ftm.server.domain.dto.query.FindByIdQuery; -import com.ftm.server.domain.dto.vo.EmailDuplicationVo; -import com.ftm.server.entity.entities.User; +import com.ftm.server.domain.entity.User; +import com.ftm.server.domain.vo.EmailDuplicationVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/ftm/server/domain/usecase/auth/UserLoginUseCase.java b/src/main/java/com/ftm/server/application/usecase/auth/UserLoginUseCase.java similarity index 68% rename from src/main/java/com/ftm/server/domain/usecase/auth/UserLoginUseCase.java rename to src/main/java/com/ftm/server/application/usecase/auth/UserLoginUseCase.java index 05b0997..61316fe 100644 --- a/src/main/java/com/ftm/server/domain/usecase/auth/UserLoginUseCase.java +++ b/src/main/java/com/ftm/server/application/usecase/auth/UserLoginUseCase.java @@ -1,17 +1,17 @@ -package com.ftm.server.domain.usecase.auth; - -import com.ftm.server.adapter.gateway.AuthenticationGateway; +package com.ftm.server.application.usecase.auth; + +import com.ftm.server.application.dto.command.UserLoginCommand; +import com.ftm.server.application.dto.query.FindByIdQuery; +import com.ftm.server.application.dto.query.FindByUserIdQuery; +import com.ftm.server.application.port.AuthenticationPort; +import com.ftm.server.application.service.UserImageService; +import com.ftm.server.application.service.UserService; import com.ftm.server.common.annotation.UseCase; import com.ftm.server.common.exception.CustomException; import com.ftm.server.common.response.enums.ErrorResponseCode; -import com.ftm.server.domain.dto.command.UserLoginCommand; -import com.ftm.server.domain.dto.query.FindByIdQuery; -import com.ftm.server.domain.dto.query.FindByUserIdQuery; -import com.ftm.server.domain.dto.vo.UserSummaryVo; -import com.ftm.server.domain.service.UserImageService; -import com.ftm.server.domain.service.UserService; -import com.ftm.server.entity.entities.User; -import com.ftm.server.entity.entities.UserImage; +import com.ftm.server.domain.entity.User; +import com.ftm.server.domain.entity.UserImage; +import com.ftm.server.domain.vo.UserSummaryVo; import com.ftm.server.infrastructure.security.UserPrincipal; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -24,7 +24,7 @@ @RequiredArgsConstructor public class UserLoginUseCase { - private final AuthenticationGateway securityAuthenticateGateway; + private final AuthenticationPort authenticationPort; private final UserService userService; private final UserImageService userImageService; @@ -41,14 +41,14 @@ public UserSummaryVo login( userImageService.queryUserImageByUserId(FindByUserIdQuery.of(user.getId())); // 인증 세션 등록 (시큐리티 컨텍스트 등록) - securityAuthenticateGateway.saveAuthenticatedSession(auth, req, res); + authenticationPort.saveAuthenticatedSession(auth, req, res); return UserSummaryVo.of(user, userImage); } private Authentication createAuthenticationOrThrow(UserLoginCommand command) { try { - return securityAuthenticateGateway.createAuthenticationFromCredentials(command); + return authenticationPort.createAuthenticationFromCredentials(command); } catch (AuthenticationException ex) { throw new CustomException(ErrorResponseCode.INVALID_CREDENTIALS); } diff --git a/src/main/java/com/ftm/server/adapter/controller/gmtest/.gitkeep b/src/main/java/com/ftm/server/application/usecase/grooming/.gitkeep similarity index 100% rename from src/main/java/com/ftm/server/adapter/controller/gmtest/.gitkeep rename to src/main/java/com/ftm/server/application/usecase/grooming/.gitkeep diff --git a/src/main/java/com/ftm/server/adapter/controller/post/.gitkeep b/src/main/java/com/ftm/server/application/usecase/post/.gitkeep similarity index 100% rename from src/main/java/com/ftm/server/adapter/controller/post/.gitkeep rename to src/main/java/com/ftm/server/application/usecase/post/.gitkeep diff --git a/src/main/java/com/ftm/server/domain/usecase/user/EmailAuthenticationUseCase.java b/src/main/java/com/ftm/server/application/usecase/user/EmailAuthenticationUseCase.java similarity index 75% rename from src/main/java/com/ftm/server/domain/usecase/user/EmailAuthenticationUseCase.java rename to src/main/java/com/ftm/server/application/usecase/user/EmailAuthenticationUseCase.java index d2f2bd1..8479b06 100644 --- a/src/main/java/com/ftm/server/domain/usecase/user/EmailAuthenticationUseCase.java +++ b/src/main/java/com/ftm/server/application/usecase/user/EmailAuthenticationUseCase.java @@ -1,15 +1,15 @@ -package com.ftm.server.domain.usecase.user; +package com.ftm.server.application.usecase.user; -import com.ftm.server.adapter.gateway.MailSenderGateway; +import com.ftm.server.application.dto.command.EmailAuthenticationCommand; +import com.ftm.server.application.dto.command.EmailVerificationLogCreationCommand; +import com.ftm.server.application.dto.query.FindByEmailQuery; +import com.ftm.server.application.port.MailSenderPort; +import com.ftm.server.application.service.EmailVerificationLogsService; import com.ftm.server.common.annotation.UseCase; import com.ftm.server.common.exception.CustomException; import com.ftm.server.common.response.enums.ErrorResponseCode; import com.ftm.server.common.utils.RandomCodeCreator; -import com.ftm.server.domain.dto.command.EmailAuthenticationCommand; -import com.ftm.server.domain.dto.command.EmailVerificationLogCreationCommand; -import com.ftm.server.domain.dto.query.FindByEmailQuery; -import com.ftm.server.domain.service.EmailVerificationLogsService; -import com.ftm.server.entity.entities.EmailVerificationLogs; +import com.ftm.server.domain.entity.EmailVerificationLogs; import jakarta.transaction.Transactional; import java.time.LocalDateTime; import java.util.Optional; @@ -19,16 +19,13 @@ @RequiredArgsConstructor public class EmailAuthenticationUseCase { - private final MailSenderGateway mailSenderGateway; - - private final RandomCodeCreator randomCodeCreator; - + private final MailSenderPort mailSenderPort; private final EmailVerificationLogsService emailVerificationLogsService; @Transactional public void sendEmailAuthenticationCode(EmailAuthenticationCommand command) { - String authCode = randomCodeCreator.generateAuthCode(); + String authCode = RandomCodeCreator.generateAuthCode(); String email = command.getEmail(); Optional emailVerificationLogs = @@ -52,6 +49,6 @@ public void sendEmailAuthenticationCode(EmailAuthenticationCommand command) { } else { // 이메일 인증 시도 횟수를 단순히 초과한 경우 throw new CustomException(ErrorResponseCode.EXCEED_NUMBER_OF_TRIAL); } - mailSenderGateway.sendEmail(email, authCode); + mailSenderPort.sendEmail(email, authCode); } } diff --git a/src/main/java/com/ftm/server/domain/usecase/user/EmailCodeVerificationUseCase.java b/src/main/java/com/ftm/server/application/usecase/user/EmailCodeVerificationUseCase.java similarity index 73% rename from src/main/java/com/ftm/server/domain/usecase/user/EmailCodeVerificationUseCase.java rename to src/main/java/com/ftm/server/application/usecase/user/EmailCodeVerificationUseCase.java index 64b8148..f131216 100644 --- a/src/main/java/com/ftm/server/domain/usecase/user/EmailCodeVerificationUseCase.java +++ b/src/main/java/com/ftm/server/application/usecase/user/EmailCodeVerificationUseCase.java @@ -1,10 +1,10 @@ -package com.ftm.server.domain.usecase.user; +package com.ftm.server.application.usecase.user; +import com.ftm.server.application.dto.query.EmailCodeVerificationQuery; +import com.ftm.server.application.service.EmailVerificationLogsService; import com.ftm.server.common.annotation.UseCase; -import com.ftm.server.domain.dto.query.EmailCodeVerificationQuery; -import com.ftm.server.domain.dto.vo.EmailCodeVerificationVo; -import com.ftm.server.domain.service.EmailVerificationLogsService; -import com.ftm.server.entity.entities.EmailVerificationLogs; +import com.ftm.server.domain.entity.EmailVerificationLogs; +import com.ftm.server.domain.vo.EmailCodeVerificationVo; import jakarta.transaction.Transactional; import java.util.Optional; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/ftm/server/domain/usecase/user/EmailDuplicationCheckUseCase.java b/src/main/java/com/ftm/server/application/usecase/user/EmailDuplicationCheckUseCase.java similarity index 61% rename from src/main/java/com/ftm/server/domain/usecase/user/EmailDuplicationCheckUseCase.java rename to src/main/java/com/ftm/server/application/usecase/user/EmailDuplicationCheckUseCase.java index b0dc130..bb4af81 100644 --- a/src/main/java/com/ftm/server/domain/usecase/user/EmailDuplicationCheckUseCase.java +++ b/src/main/java/com/ftm/server/application/usecase/user/EmailDuplicationCheckUseCase.java @@ -1,9 +1,9 @@ -package com.ftm.server.domain.usecase.user; +package com.ftm.server.application.usecase.user; +import com.ftm.server.application.dto.query.FindByEmailQuery; +import com.ftm.server.application.service.UserService; import com.ftm.server.common.annotation.UseCase; -import com.ftm.server.domain.dto.query.FindByEmailQuery; -import com.ftm.server.domain.dto.vo.EmailDuplicationVo; -import com.ftm.server.domain.service.UserService; +import com.ftm.server.domain.vo.EmailDuplicationVo; import lombok.RequiredArgsConstructor; @UseCase diff --git a/src/main/java/com/ftm/server/domain/usecase/user/GeneralUserSignupUseCase.java b/src/main/java/com/ftm/server/application/usecase/user/GeneralUserSignupUseCase.java similarity index 67% rename from src/main/java/com/ftm/server/domain/usecase/user/GeneralUserSignupUseCase.java rename to src/main/java/com/ftm/server/application/usecase/user/GeneralUserSignupUseCase.java index fa651c3..f94d03d 100644 --- a/src/main/java/com/ftm/server/domain/usecase/user/GeneralUserSignupUseCase.java +++ b/src/main/java/com/ftm/server/application/usecase/user/GeneralUserSignupUseCase.java @@ -1,20 +1,20 @@ -package com.ftm.server.domain.usecase.user; - -import com.ftm.server.adapter.gateway.AuthenticationGateway; +package com.ftm.server.application.usecase.user; + +import com.ftm.server.application.dto.command.GeneralUserCreationCommand; +import com.ftm.server.application.dto.command.GeneralUserSignupCommand; +import com.ftm.server.application.dto.query.FindByEmailQuery; +import com.ftm.server.application.dto.query.FindEmailVerificationLogsByEmailQuery; +import com.ftm.server.application.port.AuthenticationPort; +import com.ftm.server.application.service.EmailVerificationLogsService; +import com.ftm.server.application.service.UserImageService; +import com.ftm.server.application.service.UserService; import com.ftm.server.common.annotation.UseCase; import com.ftm.server.common.exception.CustomException; import com.ftm.server.common.response.enums.ErrorResponseCode; import com.ftm.server.common.utils.RandomNickNameCreator; -import com.ftm.server.domain.dto.command.GeneralUserCreationCommand; -import com.ftm.server.domain.dto.command.GeneralUserSignupCommand; -import com.ftm.server.domain.dto.query.FindByEmailQuery; -import com.ftm.server.domain.dto.query.FindEmailVerificationLogsByEmailQuery; -import com.ftm.server.domain.service.EmailVerificationLogsService; -import com.ftm.server.domain.service.UserImageService; -import com.ftm.server.domain.service.UserService; -import com.ftm.server.entity.entities.EmailVerificationLogs; -import com.ftm.server.entity.entities.User; -import com.ftm.server.entity.enums.HashTag; +import com.ftm.server.domain.entity.EmailVerificationLogs; +import com.ftm.server.domain.entity.User; +import com.ftm.server.domain.enums.HashTag; import java.util.Optional; import lombok.RequiredArgsConstructor; @@ -28,10 +28,9 @@ public class GeneralUserSignupUseCase { private final UserImageService userImageService; // gateway - private final AuthenticationGateway authenticationGateway; + private final AuthenticationPort authenticationPort; public void execute(GeneralUserSignupCommand command) { - String email = command.getEmail(); Optional emailVerificationLogs = emailVerificationLogsService.findVerifiedOneByEmail( @@ -51,7 +50,7 @@ public void execute(GeneralUserSignupCommand command) { GeneralUserCreationCommand convertedCommand = GeneralUserCreationCommand.of( command.getEmail(), - authenticationGateway.passwordEncode(command.getPassword()), + authenticationPort.passwordEncode(command.getPassword()), nickname, command.getAge(), command.getHashtags().toArray(new HashTag[size])); diff --git a/src/main/java/com/ftm/server/domain/usecase/user/GetUserSignupOptionsUseCase.java b/src/main/java/com/ftm/server/application/usecase/user/GetUserSignupOptionsUseCase.java similarity index 74% rename from src/main/java/com/ftm/server/domain/usecase/user/GetUserSignupOptionsUseCase.java rename to src/main/java/com/ftm/server/application/usecase/user/GetUserSignupOptionsUseCase.java index 211215a..7203a67 100644 --- a/src/main/java/com/ftm/server/domain/usecase/user/GetUserSignupOptionsUseCase.java +++ b/src/main/java/com/ftm/server/application/usecase/user/GetUserSignupOptionsUseCase.java @@ -1,10 +1,10 @@ -package com.ftm.server.domain.usecase.user; +package com.ftm.server.application.usecase.user; -import com.ftm.server.adapter.dto.response.UserSignupOptionsResponse; import com.ftm.server.common.annotation.UseCase; -import com.ftm.server.domain.dto.vo.UserSignupOptionsVo; -import com.ftm.server.entity.enums.AgeGroup; -import com.ftm.server.entity.enums.HashTag; +import com.ftm.server.domain.enums.AgeGroup; +import com.ftm.server.domain.enums.HashTag; +import com.ftm.server.domain.vo.UserSignupOptionsVo; +import com.ftm.server.web.dto.response.UserSignupOptionsResponse; import java.util.Arrays; import java.util.List; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/ftm/server/common/utils/RandomCodeCreator.java b/src/main/java/com/ftm/server/common/utils/RandomCodeCreator.java index d9e1925..6bbde91 100644 --- a/src/main/java/com/ftm/server/common/utils/RandomCodeCreator.java +++ b/src/main/java/com/ftm/server/common/utils/RandomCodeCreator.java @@ -1,16 +1,14 @@ package com.ftm.server.common.utils; import java.security.SecureRandom; -import org.springframework.stereotype.Component; -@Component public class RandomCodeCreator { private static final int CODE_LENGTH = 6; - private final SecureRandom random = new SecureRandom(); + private static final SecureRandom random = new SecureRandom(); - public String generateAuthCode() { + public static String generateAuthCode() { StringBuilder sb = new StringBuilder(CODE_LENGTH); for (int i = 0; i < CODE_LENGTH; i++) { diff --git a/src/main/java/com/ftm/server/entity/entities/BaseEntity.java b/src/main/java/com/ftm/server/domain/entity/BaseEntity.java similarity index 93% rename from src/main/java/com/ftm/server/entity/entities/BaseEntity.java rename to src/main/java/com/ftm/server/domain/entity/BaseEntity.java index 6cf28c7..7e03fce 100644 --- a/src/main/java/com/ftm/server/entity/entities/BaseEntity.java +++ b/src/main/java/com/ftm/server/domain/entity/BaseEntity.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; import jakarta.persistence.*; import java.time.LocalDateTime; diff --git a/src/main/java/com/ftm/server/entity/entities/BeautyProduct.java b/src/main/java/com/ftm/server/domain/entity/BeautyProduct.java similarity index 93% rename from src/main/java/com/ftm/server/entity/entities/BeautyProduct.java rename to src/main/java/com/ftm/server/domain/entity/BeautyProduct.java index 5669afb..4802b86 100644 --- a/src/main/java/com/ftm/server/entity/entities/BeautyProduct.java +++ b/src/main/java/com/ftm/server/domain/entity/BeautyProduct.java @@ -1,6 +1,6 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; -import com.ftm.server.entity.enums.BeautyProductCategory; +import com.ftm.server.domain.enums.BeautyProductCategory; import jakarta.persistence.*; import lombok.AccessLevel; import lombok.Builder; diff --git a/src/main/java/com/ftm/server/entity/entities/Bookmark.java b/src/main/java/com/ftm/server/domain/entity/Bookmark.java similarity index 94% rename from src/main/java/com/ftm/server/entity/entities/Bookmark.java rename to src/main/java/com/ftm/server/domain/entity/Bookmark.java index 1975aa9..6978628 100644 --- a/src/main/java/com/ftm/server/entity/entities/Bookmark.java +++ b/src/main/java/com/ftm/server/domain/entity/Bookmark.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; import jakarta.persistence.*; import lombok.AccessLevel; diff --git a/src/main/java/com/ftm/server/entity/entities/EmailVerificationLogs.java b/src/main/java/com/ftm/server/domain/entity/EmailVerificationLogs.java similarity index 94% rename from src/main/java/com/ftm/server/entity/entities/EmailVerificationLogs.java rename to src/main/java/com/ftm/server/domain/entity/EmailVerificationLogs.java index 2b6bf3f..15d7226 100644 --- a/src/main/java/com/ftm/server/entity/entities/EmailVerificationLogs.java +++ b/src/main/java/com/ftm/server/domain/entity/EmailVerificationLogs.java @@ -1,6 +1,6 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; -import com.ftm.server.domain.dto.command.EmailVerificationLogCreationCommand; +import com.ftm.server.application.dto.command.EmailVerificationLogCreationCommand; import jakarta.persistence.*; import java.time.LocalDateTime; import lombok.AccessLevel; diff --git a/src/main/java/com/ftm/server/entity/entities/GroomingLevel.java b/src/main/java/com/ftm/server/domain/entity/GroomingLevel.java similarity index 95% rename from src/main/java/com/ftm/server/entity/entities/GroomingLevel.java rename to src/main/java/com/ftm/server/domain/entity/GroomingLevel.java index 280781c..22b5bfa 100644 --- a/src/main/java/com/ftm/server/entity/entities/GroomingLevel.java +++ b/src/main/java/com/ftm/server/domain/entity/GroomingLevel.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; import jakarta.persistence.*; import lombok.AccessLevel; diff --git a/src/main/java/com/ftm/server/entity/entities/GroomingTestAnswer.java b/src/main/java/com/ftm/server/domain/entity/GroomingTestAnswer.java similarity index 95% rename from src/main/java/com/ftm/server/entity/entities/GroomingTestAnswer.java rename to src/main/java/com/ftm/server/domain/entity/GroomingTestAnswer.java index 2dba96f..0c121e1 100644 --- a/src/main/java/com/ftm/server/entity/entities/GroomingTestAnswer.java +++ b/src/main/java/com/ftm/server/domain/entity/GroomingTestAnswer.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; import jakarta.persistence.*; import lombok.AccessLevel; diff --git a/src/main/java/com/ftm/server/entity/entities/GroomingTestQuestion.java b/src/main/java/com/ftm/server/domain/entity/GroomingTestQuestion.java similarity index 91% rename from src/main/java/com/ftm/server/entity/entities/GroomingTestQuestion.java rename to src/main/java/com/ftm/server/domain/entity/GroomingTestQuestion.java index 61a2c1c..fbe0fb0 100644 --- a/src/main/java/com/ftm/server/entity/entities/GroomingTestQuestion.java +++ b/src/main/java/com/ftm/server/domain/entity/GroomingTestQuestion.java @@ -1,6 +1,6 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; -import com.ftm.server.entity.enums.GroomingCategory; +import com.ftm.server.domain.enums.GroomingCategory; import jakarta.persistence.*; import lombok.AccessLevel; import lombok.Builder; diff --git a/src/main/java/com/ftm/server/entity/entities/GroomingTestResult.java b/src/main/java/com/ftm/server/domain/entity/GroomingTestResult.java similarity index 96% rename from src/main/java/com/ftm/server/entity/entities/GroomingTestResult.java rename to src/main/java/com/ftm/server/domain/entity/GroomingTestResult.java index b9f71d6..4d45c3c 100644 --- a/src/main/java/com/ftm/server/entity/entities/GroomingTestResult.java +++ b/src/main/java/com/ftm/server/domain/entity/GroomingTestResult.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; import jakarta.persistence.*; import lombok.AccessLevel; diff --git a/src/main/java/com/ftm/server/entity/entities/Post.java b/src/main/java/com/ftm/server/domain/entity/Post.java similarity index 94% rename from src/main/java/com/ftm/server/entity/entities/Post.java rename to src/main/java/com/ftm/server/domain/entity/Post.java index ed7e2fe..cec0627 100644 --- a/src/main/java/com/ftm/server/entity/entities/Post.java +++ b/src/main/java/com/ftm/server/domain/entity/Post.java @@ -1,7 +1,7 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; -import com.ftm.server.entity.enums.GroomingCategory; -import com.ftm.server.entity.enums.HashTag; +import com.ftm.server.domain.enums.GroomingCategory; +import com.ftm.server.domain.enums.HashTag; import io.hypersistence.utils.hibernate.type.array.EnumArrayType; import io.hypersistence.utils.hibernate.type.array.internal.AbstractArrayType; import jakarta.persistence.*; diff --git a/src/main/java/com/ftm/server/entity/entities/PostImage.java b/src/main/java/com/ftm/server/domain/entity/PostImage.java similarity index 94% rename from src/main/java/com/ftm/server/entity/entities/PostImage.java rename to src/main/java/com/ftm/server/domain/entity/PostImage.java index fa89db3..91a55c5 100644 --- a/src/main/java/com/ftm/server/entity/entities/PostImage.java +++ b/src/main/java/com/ftm/server/domain/entity/PostImage.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; import jakarta.persistence.*; import lombok.AccessLevel; diff --git a/src/main/java/com/ftm/server/entity/entities/PostProduct.java b/src/main/java/com/ftm/server/domain/entity/PostProduct.java similarity index 95% rename from src/main/java/com/ftm/server/entity/entities/PostProduct.java rename to src/main/java/com/ftm/server/domain/entity/PostProduct.java index de653b3..5bfe845 100644 --- a/src/main/java/com/ftm/server/entity/entities/PostProduct.java +++ b/src/main/java/com/ftm/server/domain/entity/PostProduct.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; import jakarta.persistence.*; import lombok.AccessLevel; diff --git a/src/main/java/com/ftm/server/entity/entities/PostProductImage.java b/src/main/java/com/ftm/server/domain/entity/PostProductImage.java similarity index 94% rename from src/main/java/com/ftm/server/entity/entities/PostProductImage.java rename to src/main/java/com/ftm/server/domain/entity/PostProductImage.java index 0f698af..e7acd39 100644 --- a/src/main/java/com/ftm/server/entity/entities/PostProductImage.java +++ b/src/main/java/com/ftm/server/domain/entity/PostProductImage.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; import jakarta.persistence.*; import lombok.AccessLevel; diff --git a/src/main/java/com/ftm/server/entity/entities/User.java b/src/main/java/com/ftm/server/domain/entity/User.java similarity index 92% rename from src/main/java/com/ftm/server/entity/entities/User.java rename to src/main/java/com/ftm/server/domain/entity/User.java index 00c96aa..65f21e1 100644 --- a/src/main/java/com/ftm/server/entity/entities/User.java +++ b/src/main/java/com/ftm/server/domain/entity/User.java @@ -1,10 +1,10 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; -import com.ftm.server.domain.dto.command.GeneralUserCreationCommand; -import com.ftm.server.entity.enums.AgeGroup; -import com.ftm.server.entity.enums.HashTag; -import com.ftm.server.entity.enums.SocialProvider; -import com.ftm.server.entity.enums.UserRole; +import com.ftm.server.application.dto.command.GeneralUserCreationCommand; +import com.ftm.server.domain.enums.AgeGroup; +import com.ftm.server.domain.enums.HashTag; +import com.ftm.server.domain.enums.SocialProvider; +import com.ftm.server.domain.enums.UserRole; import io.hypersistence.utils.hibernate.type.array.EnumArrayType; import io.hypersistence.utils.hibernate.type.array.internal.AbstractArrayType; import jakarta.persistence.*; diff --git a/src/main/java/com/ftm/server/entity/entities/UserImage.java b/src/main/java/com/ftm/server/domain/entity/UserImage.java similarity index 95% rename from src/main/java/com/ftm/server/entity/entities/UserImage.java rename to src/main/java/com/ftm/server/domain/entity/UserImage.java index 1013a1c..a7b0a9d 100644 --- a/src/main/java/com/ftm/server/entity/entities/UserImage.java +++ b/src/main/java/com/ftm/server/domain/entity/UserImage.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.entities; +package com.ftm.server.domain.entity; import jakarta.persistence.*; import lombok.AccessLevel; diff --git a/src/main/java/com/ftm/server/entity/enums/AgeGroup.java b/src/main/java/com/ftm/server/domain/enums/AgeGroup.java similarity index 87% rename from src/main/java/com/ftm/server/entity/enums/AgeGroup.java rename to src/main/java/com/ftm/server/domain/enums/AgeGroup.java index 8d80af6..d525b32 100644 --- a/src/main/java/com/ftm/server/entity/enums/AgeGroup.java +++ b/src/main/java/com/ftm/server/domain/enums/AgeGroup.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.enums; +package com.ftm.server.domain.enums; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/entity/enums/BeautyProductCategory.java b/src/main/java/com/ftm/server/domain/enums/BeautyProductCategory.java similarity index 85% rename from src/main/java/com/ftm/server/entity/enums/BeautyProductCategory.java rename to src/main/java/com/ftm/server/domain/enums/BeautyProductCategory.java index 27e996b..34279e4 100644 --- a/src/main/java/com/ftm/server/entity/enums/BeautyProductCategory.java +++ b/src/main/java/com/ftm/server/domain/enums/BeautyProductCategory.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.enums; +package com.ftm.server.domain.enums; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/entity/enums/GroomingCategory.java b/src/main/java/com/ftm/server/domain/enums/GroomingCategory.java similarity index 88% rename from src/main/java/com/ftm/server/entity/enums/GroomingCategory.java rename to src/main/java/com/ftm/server/domain/enums/GroomingCategory.java index de657ab..7022514 100644 --- a/src/main/java/com/ftm/server/entity/enums/GroomingCategory.java +++ b/src/main/java/com/ftm/server/domain/enums/GroomingCategory.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.enums; +package com.ftm.server.domain.enums; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/entity/enums/HashTag.java b/src/main/java/com/ftm/server/domain/enums/HashTag.java similarity index 90% rename from src/main/java/com/ftm/server/entity/enums/HashTag.java rename to src/main/java/com/ftm/server/domain/enums/HashTag.java index 64af998..b3799f5 100644 --- a/src/main/java/com/ftm/server/entity/enums/HashTag.java +++ b/src/main/java/com/ftm/server/domain/enums/HashTag.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.enums; +package com.ftm.server.domain.enums; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/entity/enums/SocialProvider.java b/src/main/java/com/ftm/server/domain/enums/SocialProvider.java similarity index 83% rename from src/main/java/com/ftm/server/entity/enums/SocialProvider.java rename to src/main/java/com/ftm/server/domain/enums/SocialProvider.java index 384ed8e..4cd5b1d 100644 --- a/src/main/java/com/ftm/server/entity/enums/SocialProvider.java +++ b/src/main/java/com/ftm/server/domain/enums/SocialProvider.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.enums; +package com.ftm.server.domain.enums; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/entity/enums/UserRole.java b/src/main/java/com/ftm/server/domain/enums/UserRole.java similarity index 85% rename from src/main/java/com/ftm/server/entity/enums/UserRole.java rename to src/main/java/com/ftm/server/domain/enums/UserRole.java index d59f54c..774a03e 100644 --- a/src/main/java/com/ftm/server/entity/enums/UserRole.java +++ b/src/main/java/com/ftm/server/domain/enums/UserRole.java @@ -1,4 +1,4 @@ -package com.ftm.server.entity.enums; +package com.ftm.server.domain.enums; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/domain/usecase/post/.gitkeep b/src/main/java/com/ftm/server/domain/usecase/post/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/com/ftm/server/domain/dto/vo/EmailCodeVerificationVo.java b/src/main/java/com/ftm/server/domain/vo/EmailCodeVerificationVo.java similarity index 86% rename from src/main/java/com/ftm/server/domain/dto/vo/EmailCodeVerificationVo.java rename to src/main/java/com/ftm/server/domain/vo/EmailCodeVerificationVo.java index 9fcc2cd..382232a 100644 --- a/src/main/java/com/ftm/server/domain/dto/vo/EmailCodeVerificationVo.java +++ b/src/main/java/com/ftm/server/domain/vo/EmailCodeVerificationVo.java @@ -1,4 +1,4 @@ -package com.ftm.server.domain.dto.vo; +package com.ftm.server.domain.vo; import lombok.Data; diff --git a/src/main/java/com/ftm/server/domain/dto/vo/EmailDuplicationVo.java b/src/main/java/com/ftm/server/domain/vo/EmailDuplicationVo.java similarity index 85% rename from src/main/java/com/ftm/server/domain/dto/vo/EmailDuplicationVo.java rename to src/main/java/com/ftm/server/domain/vo/EmailDuplicationVo.java index 5bae6bc..67b9b3e 100644 --- a/src/main/java/com/ftm/server/domain/dto/vo/EmailDuplicationVo.java +++ b/src/main/java/com/ftm/server/domain/vo/EmailDuplicationVo.java @@ -1,4 +1,4 @@ -package com.ftm.server.domain.dto.vo; +package com.ftm.server.domain.vo; import lombok.Data; diff --git a/src/main/java/com/ftm/server/domain/dto/vo/UserSignupOptionsVo.java b/src/main/java/com/ftm/server/domain/vo/UserSignupOptionsVo.java similarity index 81% rename from src/main/java/com/ftm/server/domain/dto/vo/UserSignupOptionsVo.java rename to src/main/java/com/ftm/server/domain/vo/UserSignupOptionsVo.java index 8cdf2e5..826e1ca 100644 --- a/src/main/java/com/ftm/server/domain/dto/vo/UserSignupOptionsVo.java +++ b/src/main/java/com/ftm/server/domain/vo/UserSignupOptionsVo.java @@ -1,6 +1,6 @@ -package com.ftm.server.domain.dto.vo; +package com.ftm.server.domain.vo; -import com.ftm.server.adapter.dto.response.UserSignupOptionsResponse; +import com.ftm.server.web.dto.response.UserSignupOptionsResponse; import java.util.List; import lombok.Data; diff --git a/src/main/java/com/ftm/server/domain/dto/vo/UserSummaryVo.java b/src/main/java/com/ftm/server/domain/vo/UserSummaryVo.java similarity index 65% rename from src/main/java/com/ftm/server/domain/dto/vo/UserSummaryVo.java rename to src/main/java/com/ftm/server/domain/vo/UserSummaryVo.java index 3a396e2..600d4ab 100644 --- a/src/main/java/com/ftm/server/domain/dto/vo/UserSummaryVo.java +++ b/src/main/java/com/ftm/server/domain/vo/UserSummaryVo.java @@ -1,8 +1,8 @@ -package com.ftm.server.domain.dto.vo; +package com.ftm.server.domain.vo; -import com.ftm.server.entity.entities.GroomingLevel; -import com.ftm.server.entity.entities.User; -import com.ftm.server.entity.entities.UserImage; +import com.ftm.server.domain.entity.GroomingLevel; +import com.ftm.server.domain.entity.User; +import com.ftm.server.domain.entity.UserImage; import lombok.Getter; @Getter @@ -18,8 +18,8 @@ private UserSummaryVo(User user, UserImage userImage, GroomingLevel groomingLeve this.id = user.getId(); this.nickname = user.getNickname(); this.profileImageUrl = userImage.getObjectKey(); // TODO: 추후 CDN 주소 + getObjectKey() 로 변경해야함 - this.mildLevelName = groomingLevel.getMildLevelName(); - this.spicyLevelName = groomingLevel.getSpicyLevelName(); + this.mildLevelName = groomingLevel != null ? groomingLevel.getMildLevelName() : null; + this.spicyLevelName = groomingLevel != null ? groomingLevel.getSpicyLevelName() : null; } public static UserSummaryVo of(User user, UserImage userImage) { diff --git a/src/main/java/com/ftm/server/infrastructure/redis/RedisService.java b/src/main/java/com/ftm/server/infrastructure/redis/RedisService.java index aa6ea46..bd59d36 100644 --- a/src/main/java/com/ftm/server/infrastructure/redis/RedisService.java +++ b/src/main/java/com/ftm/server/infrastructure/redis/RedisService.java @@ -1,7 +1,7 @@ package com.ftm.server.infrastructure.redis; -import com.ftm.server.adapter.gateway.RedisCacheGateway; -import com.ftm.server.adapter.gateway.RedisSessionGateway; +import com.ftm.server.application.port.RedisCachePort; +import com.ftm.server.application.port.RedisSessionPort; import com.ftm.server.common.annotation.InfraService; import lombok.RequiredArgsConstructor; import org.springframework.data.redis.core.RedisTemplate; @@ -9,7 +9,7 @@ /** Redis Caching, Session 구현체 각 역할 별 레디스 조작 관리 (비즈니스 로직이 포함되면 안됨, 기술적인 로직만 수행) */ @InfraService @RequiredArgsConstructor -public class RedisService implements RedisCacheGateway, RedisSessionGateway { +public class RedisService implements RedisCachePort, RedisSessionPort { private final RedisTemplate redisTemplate; } diff --git a/src/main/java/com/ftm/server/infrastructure/security/AuthenticationService.java b/src/main/java/com/ftm/server/infrastructure/security/AuthenticationService.java index 3740bbb..19287c7 100644 --- a/src/main/java/com/ftm/server/infrastructure/security/AuthenticationService.java +++ b/src/main/java/com/ftm/server/infrastructure/security/AuthenticationService.java @@ -1,8 +1,8 @@ package com.ftm.server.infrastructure.security; -import com.ftm.server.adapter.gateway.AuthenticationGateway; +import com.ftm.server.application.dto.command.UserLoginCommand; +import com.ftm.server.application.port.AuthenticationPort; import com.ftm.server.common.annotation.InfraService; -import com.ftm.server.domain.dto.command.UserLoginCommand; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; @@ -19,7 +19,7 @@ @Slf4j @InfraService @RequiredArgsConstructor -public class AuthenticationService implements AuthenticationGateway { +public class AuthenticationService implements AuthenticationPort { private final AuthenticationManager authenticationManager; private final SecurityContextRepository securityContextRepository; diff --git a/src/main/java/com/ftm/server/infrastructure/security/UserPrincipal.java b/src/main/java/com/ftm/server/infrastructure/security/UserPrincipal.java index 27ee4cd..88de04e 100644 --- a/src/main/java/com/ftm/server/infrastructure/security/UserPrincipal.java +++ b/src/main/java/com/ftm/server/infrastructure/security/UserPrincipal.java @@ -1,7 +1,7 @@ package com.ftm.server.infrastructure.security; -import com.ftm.server.entity.entities.User; -import com.ftm.server.entity.enums.UserRole; +import com.ftm.server.domain.entity.User; +import com.ftm.server.domain.enums.UserRole; import java.util.Collection; import java.util.Collections; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/infrastructure/security/UserPrincipalService.java b/src/main/java/com/ftm/server/infrastructure/security/UserPrincipalService.java index 8b18139..6f6877a 100644 --- a/src/main/java/com/ftm/server/infrastructure/security/UserPrincipalService.java +++ b/src/main/java/com/ftm/server/infrastructure/security/UserPrincipalService.java @@ -1,10 +1,10 @@ package com.ftm.server.infrastructure.security; -import com.ftm.server.adapter.gateway.repository.UserRepository; +import com.ftm.server.application.port.repository.UserRepository; import com.ftm.server.common.annotation.InfraService; import com.ftm.server.common.exception.CustomException; import com.ftm.server.common.response.enums.ErrorResponseCode; -import com.ftm.server.entity.entities.User; +import com.ftm.server.domain.entity.User; import lombok.RequiredArgsConstructor; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; diff --git a/src/main/java/com/ftm/server/infrastructure/smtp/MailSenderService.java b/src/main/java/com/ftm/server/infrastructure/smtp/MailSenderService.java index 90e950c..b05fb2c 100644 --- a/src/main/java/com/ftm/server/infrastructure/smtp/MailSenderService.java +++ b/src/main/java/com/ftm/server/infrastructure/smtp/MailSenderService.java @@ -1,6 +1,6 @@ package com.ftm.server.infrastructure.smtp; -import com.ftm.server.adapter.gateway.MailSenderGateway; +import com.ftm.server.application.port.MailSenderPort; import com.ftm.server.common.annotation.InfraService; import com.ftm.server.common.exception.CustomException; import com.ftm.server.common.response.enums.ErrorResponseCode; @@ -13,7 +13,7 @@ @RequiredArgsConstructor @InfraService -public class MailSenderService implements MailSenderGateway { +public class MailSenderService implements MailSenderPort { private final JavaMailSender mailSender; diff --git a/src/main/java/com/ftm/server/adapter/controller/auth/UserLoginController.java b/src/main/java/com/ftm/server/web/controller/auth/UserLoginController.java similarity index 60% rename from src/main/java/com/ftm/server/adapter/controller/auth/UserLoginController.java rename to src/main/java/com/ftm/server/web/controller/auth/UserLoginController.java index c9e9139..6837602 100644 --- a/src/main/java/com/ftm/server/adapter/controller/auth/UserLoginController.java +++ b/src/main/java/com/ftm/server/web/controller/auth/UserLoginController.java @@ -1,11 +1,12 @@ -package com.ftm.server.adapter.controller.auth; +package com.ftm.server.web.controller.auth; -import com.ftm.server.adapter.dto.request.UserLoginRequest; -import com.ftm.server.adapter.dto.response.UserLoginResponse; +import com.ftm.server.application.dto.command.UserLoginCommand; +import com.ftm.server.application.usecase.auth.UserLoginUseCase; import com.ftm.server.common.response.ApiResponse; import com.ftm.server.common.response.enums.SuccessResponseCode; -import com.ftm.server.domain.dto.command.UserLoginCommand; -import com.ftm.server.domain.usecase.auth.UserLoginUseCase; +import com.ftm.server.domain.vo.UserSummaryVo; +import com.ftm.server.web.dto.request.UserLoginRequest; +import com.ftm.server.web.dto.response.UserLoginResponse; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; @@ -26,12 +27,8 @@ public ResponseEntity> login( @RequestBody UserLoginRequest request, HttpServletRequest req, HttpServletResponse res) { + UserSummaryVo vo = loginUseCase.login(UserLoginCommand.from(request), req, res); return ResponseEntity.status(HttpStatus.OK) - .body( - ApiResponse.success( - SuccessResponseCode.OK, - UserLoginResponse.from( - loginUseCase.login( - UserLoginCommand.from(request), req, res)))); + .body(ApiResponse.success(SuccessResponseCode.OK, UserLoginResponse.from(vo))); } } diff --git a/src/main/java/com/ftm/server/domain/exception/.gitkeep b/src/main/java/com/ftm/server/web/controller/grooming/.gitkeep similarity index 100% rename from src/main/java/com/ftm/server/domain/exception/.gitkeep rename to src/main/java/com/ftm/server/web/controller/grooming/.gitkeep diff --git a/src/main/java/com/ftm/server/domain/usecase/gmtest/.gitkeep b/src/main/java/com/ftm/server/web/controller/post/.gitkeep similarity index 100% rename from src/main/java/com/ftm/server/domain/usecase/gmtest/.gitkeep rename to src/main/java/com/ftm/server/web/controller/post/.gitkeep diff --git a/src/main/java/com/ftm/server/adapter/controller/user/EmailAuthenticationController.java b/src/main/java/com/ftm/server/web/controller/user/EmailAuthenticationController.java similarity index 80% rename from src/main/java/com/ftm/server/adapter/controller/user/EmailAuthenticationController.java rename to src/main/java/com/ftm/server/web/controller/user/EmailAuthenticationController.java index f7ed1a2..fe71227 100644 --- a/src/main/java/com/ftm/server/adapter/controller/user/EmailAuthenticationController.java +++ b/src/main/java/com/ftm/server/web/controller/user/EmailAuthenticationController.java @@ -1,10 +1,10 @@ -package com.ftm.server.adapter.controller.user; +package com.ftm.server.web.controller.user; -import com.ftm.server.adapter.dto.request.EmailAuthenticationRequest; +import com.ftm.server.application.dto.command.EmailAuthenticationCommand; +import com.ftm.server.application.usecase.user.EmailAuthenticationUseCase; import com.ftm.server.common.response.ApiResponse; import com.ftm.server.common.response.enums.SuccessResponseCode; -import com.ftm.server.domain.dto.command.EmailAuthenticationCommand; -import com.ftm.server.domain.usecase.user.EmailAuthenticationUseCase; +import com.ftm.server.web.dto.request.EmailAuthenticationRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; diff --git a/src/main/java/com/ftm/server/adapter/controller/user/EmailCodeVerificationController.java b/src/main/java/com/ftm/server/web/controller/user/EmailCodeVerificationController.java similarity index 78% rename from src/main/java/com/ftm/server/adapter/controller/user/EmailCodeVerificationController.java rename to src/main/java/com/ftm/server/web/controller/user/EmailCodeVerificationController.java index 92e16c5..586e75c 100644 --- a/src/main/java/com/ftm/server/adapter/controller/user/EmailCodeVerificationController.java +++ b/src/main/java/com/ftm/server/web/controller/user/EmailCodeVerificationController.java @@ -1,11 +1,11 @@ -package com.ftm.server.adapter.controller.user; +package com.ftm.server.web.controller.user; -import com.ftm.server.adapter.dto.request.EmailCodeVerificationRequest; -import com.ftm.server.adapter.dto.response.EmailCodeVerificationResponse; +import com.ftm.server.application.dto.query.EmailCodeVerificationQuery; +import com.ftm.server.application.usecase.user.EmailCodeVerificationUseCase; import com.ftm.server.common.response.ApiResponse; import com.ftm.server.common.response.enums.SuccessResponseCode; -import com.ftm.server.domain.dto.query.EmailCodeVerificationQuery; -import com.ftm.server.domain.usecase.user.EmailCodeVerificationUseCase; +import com.ftm.server.web.dto.request.EmailCodeVerificationRequest; +import com.ftm.server.web.dto.response.EmailCodeVerificationResponse; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; diff --git a/src/main/java/com/ftm/server/adapter/controller/user/EmailDuplicationCheckController.java b/src/main/java/com/ftm/server/web/controller/user/EmailDuplicationCheckController.java similarity index 82% rename from src/main/java/com/ftm/server/adapter/controller/user/EmailDuplicationCheckController.java rename to src/main/java/com/ftm/server/web/controller/user/EmailDuplicationCheckController.java index 039415c..9e7e001 100644 --- a/src/main/java/com/ftm/server/adapter/controller/user/EmailDuplicationCheckController.java +++ b/src/main/java/com/ftm/server/web/controller/user/EmailDuplicationCheckController.java @@ -1,10 +1,10 @@ -package com.ftm.server.adapter.controller.user; +package com.ftm.server.web.controller.user; -import com.ftm.server.adapter.dto.response.EmailDuplicationCheckResponse; +import com.ftm.server.application.dto.query.FindByEmailQuery; +import com.ftm.server.application.usecase.user.EmailDuplicationCheckUseCase; import com.ftm.server.common.response.ApiResponse; import com.ftm.server.common.response.enums.SuccessResponseCode; -import com.ftm.server.domain.dto.query.FindByEmailQuery; -import com.ftm.server.domain.usecase.user.EmailDuplicationCheckUseCase; +import com.ftm.server.web.dto.response.EmailDuplicationCheckResponse; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/com/ftm/server/adapter/controller/user/GeneralUserSignupController.java b/src/main/java/com/ftm/server/web/controller/user/GeneralUserSignupController.java similarity index 79% rename from src/main/java/com/ftm/server/adapter/controller/user/GeneralUserSignupController.java rename to src/main/java/com/ftm/server/web/controller/user/GeneralUserSignupController.java index 7354cb5..d7ee6f6 100644 --- a/src/main/java/com/ftm/server/adapter/controller/user/GeneralUserSignupController.java +++ b/src/main/java/com/ftm/server/web/controller/user/GeneralUserSignupController.java @@ -1,10 +1,10 @@ -package com.ftm.server.adapter.controller.user; +package com.ftm.server.web.controller.user; -import com.ftm.server.adapter.dto.request.GeneralUserSignupRequest; +import com.ftm.server.application.dto.command.GeneralUserSignupCommand; +import com.ftm.server.application.usecase.user.GeneralUserSignupUseCase; import com.ftm.server.common.response.ApiResponse; import com.ftm.server.common.response.enums.SuccessResponseCode; -import com.ftm.server.domain.dto.command.GeneralUserSignupCommand; -import com.ftm.server.domain.usecase.user.GeneralUserSignupUseCase; +import com.ftm.server.web.dto.request.GeneralUserSignupRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; diff --git a/src/main/java/com/ftm/server/adapter/controller/user/GetUserSignupOptionsController.java b/src/main/java/com/ftm/server/web/controller/user/GetUserSignupOptionsController.java similarity index 83% rename from src/main/java/com/ftm/server/adapter/controller/user/GetUserSignupOptionsController.java rename to src/main/java/com/ftm/server/web/controller/user/GetUserSignupOptionsController.java index d4d4b4e..5fd8271 100644 --- a/src/main/java/com/ftm/server/adapter/controller/user/GetUserSignupOptionsController.java +++ b/src/main/java/com/ftm/server/web/controller/user/GetUserSignupOptionsController.java @@ -1,9 +1,9 @@ -package com.ftm.server.adapter.controller.user; +package com.ftm.server.web.controller.user; -import com.ftm.server.adapter.dto.response.UserSignupOptionsResponse; +import com.ftm.server.application.usecase.user.GetUserSignupOptionsUseCase; import com.ftm.server.common.response.ApiResponse; import com.ftm.server.common.response.enums.SuccessResponseCode; -import com.ftm.server.domain.usecase.user.GetUserSignupOptionsUseCase; +import com.ftm.server.web.dto.response.UserSignupOptionsResponse; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/com/ftm/server/adapter/dto/request/EmailAuthenticationRequest.java b/src/main/java/com/ftm/server/web/dto/request/EmailAuthenticationRequest.java similarity index 87% rename from src/main/java/com/ftm/server/adapter/dto/request/EmailAuthenticationRequest.java rename to src/main/java/com/ftm/server/web/dto/request/EmailAuthenticationRequest.java index bf68f7a..935873c 100644 --- a/src/main/java/com/ftm/server/adapter/dto/request/EmailAuthenticationRequest.java +++ b/src/main/java/com/ftm/server/web/dto/request/EmailAuthenticationRequest.java @@ -1,4 +1,4 @@ -package com.ftm.server.adapter.dto.request; +package com.ftm.server.web.dto.request; import jakarta.validation.constraints.Pattern; import lombok.Data; diff --git a/src/main/java/com/ftm/server/adapter/dto/request/EmailCodeVerificationRequest.java b/src/main/java/com/ftm/server/web/dto/request/EmailCodeVerificationRequest.java similarity index 82% rename from src/main/java/com/ftm/server/adapter/dto/request/EmailCodeVerificationRequest.java rename to src/main/java/com/ftm/server/web/dto/request/EmailCodeVerificationRequest.java index 51e53b4..498fbcb 100644 --- a/src/main/java/com/ftm/server/adapter/dto/request/EmailCodeVerificationRequest.java +++ b/src/main/java/com/ftm/server/web/dto/request/EmailCodeVerificationRequest.java @@ -1,4 +1,4 @@ -package com.ftm.server.adapter.dto.request; +package com.ftm.server.web.dto.request; import jakarta.validation.constraints.NotBlank; import lombok.Data; diff --git a/src/main/java/com/ftm/server/adapter/dto/request/GeneralUserSignupRequest.java b/src/main/java/com/ftm/server/web/dto/request/GeneralUserSignupRequest.java similarity index 80% rename from src/main/java/com/ftm/server/adapter/dto/request/GeneralUserSignupRequest.java rename to src/main/java/com/ftm/server/web/dto/request/GeneralUserSignupRequest.java index 8e7fb48..3120fd5 100644 --- a/src/main/java/com/ftm/server/adapter/dto/request/GeneralUserSignupRequest.java +++ b/src/main/java/com/ftm/server/web/dto/request/GeneralUserSignupRequest.java @@ -1,7 +1,7 @@ -package com.ftm.server.adapter.dto.request; +package com.ftm.server.web.dto.request; -import com.ftm.server.entity.enums.AgeGroup; -import com.ftm.server.entity.enums.HashTag; +import com.ftm.server.domain.enums.AgeGroup; +import com.ftm.server.domain.enums.HashTag; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; diff --git a/src/main/java/com/ftm/server/adapter/dto/request/UserLoginRequest.java b/src/main/java/com/ftm/server/web/dto/request/UserLoginRequest.java similarity index 81% rename from src/main/java/com/ftm/server/adapter/dto/request/UserLoginRequest.java rename to src/main/java/com/ftm/server/web/dto/request/UserLoginRequest.java index 290a325..752daf6 100644 --- a/src/main/java/com/ftm/server/adapter/dto/request/UserLoginRequest.java +++ b/src/main/java/com/ftm/server/web/dto/request/UserLoginRequest.java @@ -1,4 +1,4 @@ -package com.ftm.server.adapter.dto.request; +package com.ftm.server.web.dto.request; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/adapter/dto/response/EmailCodeVerificationResponse.java b/src/main/java/com/ftm/server/web/dto/response/EmailCodeVerificationResponse.java similarity index 72% rename from src/main/java/com/ftm/server/adapter/dto/response/EmailCodeVerificationResponse.java rename to src/main/java/com/ftm/server/web/dto/response/EmailCodeVerificationResponse.java index 5ca6ed8..118a5a1 100644 --- a/src/main/java/com/ftm/server/adapter/dto/response/EmailCodeVerificationResponse.java +++ b/src/main/java/com/ftm/server/web/dto/response/EmailCodeVerificationResponse.java @@ -1,6 +1,6 @@ -package com.ftm.server.adapter.dto.response; +package com.ftm.server.web.dto.response; -import com.ftm.server.domain.dto.vo.EmailCodeVerificationVo; +import com.ftm.server.domain.vo.EmailCodeVerificationVo; import lombok.Data; @Data diff --git a/src/main/java/com/ftm/server/adapter/dto/response/EmailDuplicationCheckResponse.java b/src/main/java/com/ftm/server/web/dto/response/EmailDuplicationCheckResponse.java similarity index 75% rename from src/main/java/com/ftm/server/adapter/dto/response/EmailDuplicationCheckResponse.java rename to src/main/java/com/ftm/server/web/dto/response/EmailDuplicationCheckResponse.java index 3e1463b..a94ad2e 100644 --- a/src/main/java/com/ftm/server/adapter/dto/response/EmailDuplicationCheckResponse.java +++ b/src/main/java/com/ftm/server/web/dto/response/EmailDuplicationCheckResponse.java @@ -1,6 +1,6 @@ -package com.ftm.server.adapter.dto.response; +package com.ftm.server.web.dto.response; -import com.ftm.server.domain.dto.vo.EmailDuplicationVo; +import com.ftm.server.domain.vo.EmailDuplicationVo; import lombok.Data; @Data diff --git a/src/main/java/com/ftm/server/adapter/dto/response/UserLoginResponse.java b/src/main/java/com/ftm/server/web/dto/response/UserLoginResponse.java similarity index 91% rename from src/main/java/com/ftm/server/adapter/dto/response/UserLoginResponse.java rename to src/main/java/com/ftm/server/web/dto/response/UserLoginResponse.java index f40d42e..edd01a4 100644 --- a/src/main/java/com/ftm/server/adapter/dto/response/UserLoginResponse.java +++ b/src/main/java/com/ftm/server/web/dto/response/UserLoginResponse.java @@ -1,7 +1,7 @@ -package com.ftm.server.adapter.dto.response; +package com.ftm.server.web.dto.response; import com.fasterxml.jackson.annotation.JsonFormat; -import com.ftm.server.domain.dto.vo.UserSummaryVo; +import com.ftm.server.domain.vo.UserSummaryVo; import java.time.LocalDateTime; import lombok.Getter; diff --git a/src/main/java/com/ftm/server/adapter/dto/response/UserSignupOptionsResponse.java b/src/main/java/com/ftm/server/web/dto/response/UserSignupOptionsResponse.java similarity index 79% rename from src/main/java/com/ftm/server/adapter/dto/response/UserSignupOptionsResponse.java rename to src/main/java/com/ftm/server/web/dto/response/UserSignupOptionsResponse.java index a9f47b1..fafa00e 100644 --- a/src/main/java/com/ftm/server/adapter/dto/response/UserSignupOptionsResponse.java +++ b/src/main/java/com/ftm/server/web/dto/response/UserSignupOptionsResponse.java @@ -1,8 +1,8 @@ -package com.ftm.server.adapter.dto.response; +package com.ftm.server.web.dto.response; -import com.ftm.server.domain.dto.vo.UserSignupOptionsVo; -import com.ftm.server.entity.enums.AgeGroup; -import com.ftm.server.entity.enums.HashTag; +import com.ftm.server.domain.enums.AgeGroup; +import com.ftm.server.domain.enums.HashTag; +import com.ftm.server.domain.vo.UserSignupOptionsVo; import java.util.List; import lombok.Data; diff --git a/src/test/java/com/ftm/server/auth/UserLoginTest.java b/src/test/java/com/ftm/server/auth/UserLoginTest.java index 297b84c..c36414d 100644 --- a/src/test/java/com/ftm/server/auth/UserLoginTest.java +++ b/src/test/java/com/ftm/server/auth/UserLoginTest.java @@ -14,11 +14,20 @@ import com.epages.restdocs.apispec.ResourceSnippetParameters; import com.ftm.server.BaseTest; -import com.ftm.server.adapter.dto.request.UserLoginRequest; +import com.ftm.server.application.dto.command.GeneralUserCreationCommand; +import com.ftm.server.application.port.AuthenticationPort; +import com.ftm.server.application.port.repository.UserImageRepository; +import com.ftm.server.application.port.repository.UserRepository; import com.ftm.server.common.response.enums.ErrorResponseCode; +import com.ftm.server.domain.entity.User; +import com.ftm.server.domain.entity.UserImage; +import com.ftm.server.domain.enums.AgeGroup; +import com.ftm.server.web.dto.request.UserLoginRequest; import java.util.List; import org.hamcrest.Matchers; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders; import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler; import org.springframework.restdocs.payload.FieldDescriptor; @@ -28,6 +37,10 @@ public class UserLoginTest extends BaseTest { + @Autowired private UserRepository userRepository; + @Autowired private UserImageRepository userImageRepository; + @Autowired private AuthenticationPort authenticationPort; + private final List requestFieldLoginUser = List.of( fieldWithPath("email").type(STRING).description("이메일"), @@ -44,8 +57,14 @@ public class UserLoginTest extends BaseTest { fieldWithPath("data.profileImageUrl") .type(STRING) .description("유저 프로필 이미지 URL"), - fieldWithPath("data.mildLevelName").type(STRING).description("순한맛 그루밍 레벨 이름"), - fieldWithPath("data.spicyLevelName").type(STRING).description("매운맛 그루밍 레벨 이름"), + fieldWithPath("data.mildLevelName") + .type(STRING) + .optional() + .description("순한맛 그루밍 레벨 이름"), + fieldWithPath("data.spicyLevelName") + .type(STRING) + .optional() + .description("매운맛 그루밍 레벨 이름"), fieldWithPath("data.loginTime").type(STRING).description("로그인 시간")); private ResultActions getResultActions(UserLoginRequest request) throws Exception { @@ -75,6 +94,19 @@ private RestDocumentationResultHandler getDocument(Integer identifier) { .build())); } + @BeforeEach + void setUp() { + GeneralUserCreationCommand testCommand = + GeneralUserCreationCommand.of( + "test@gmail.com", + authenticationPort.passwordEncode("test1234!"), + "test", + AgeGroup.TEENS, + null); + User testUser = userRepository.save(User.createGeneralUser(testCommand)); + userImageRepository.save(UserImage.createUserImage(testUser)); + } + @Test @Transactional void 유저_로그인_성공() throws Exception { diff --git a/src/test/java/com/ftm/server/user/EmailAuthenticationTest.java b/src/test/java/com/ftm/server/user/EmailAuthenticationTest.java index 91d7f69..81fa0b6 100644 --- a/src/test/java/com/ftm/server/user/EmailAuthenticationTest.java +++ b/src/test/java/com/ftm/server/user/EmailAuthenticationTest.java @@ -11,11 +11,11 @@ import com.epages.restdocs.apispec.ResourceSnippetParameters; import com.ftm.server.BaseTest; -import com.ftm.server.adapter.dto.request.EmailAuthenticationRequest; +import com.ftm.server.application.dto.command.EmailAuthenticationCommand; +import com.ftm.server.application.usecase.user.EmailAuthenticationUseCase; import com.ftm.server.common.exception.CustomException; import com.ftm.server.common.response.enums.ErrorResponseCode; -import com.ftm.server.domain.dto.command.EmailAuthenticationCommand; -import com.ftm.server.domain.usecase.user.EmailAuthenticationUseCase; +import com.ftm.server.web.dto.request.EmailAuthenticationRequest; import jakarta.transaction.Transactional; import java.util.List; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/ftm/server/user/EmailCodeVerificationTest.java b/src/test/java/com/ftm/server/user/EmailCodeVerificationTest.java index df84779..b3b59ef 100644 --- a/src/test/java/com/ftm/server/user/EmailCodeVerificationTest.java +++ b/src/test/java/com/ftm/server/user/EmailCodeVerificationTest.java @@ -9,9 +9,9 @@ import com.epages.restdocs.apispec.ResourceSnippetParameters; import com.ftm.server.BaseTest; -import com.ftm.server.adapter.dto.request.EmailCodeVerificationRequest; -import com.ftm.server.domain.dto.command.EmailVerificationLogCreationCommand; -import com.ftm.server.domain.service.EmailVerificationLogsService; +import com.ftm.server.application.dto.command.EmailVerificationLogCreationCommand; +import com.ftm.server.application.service.EmailVerificationLogsService; +import com.ftm.server.web.dto.request.EmailCodeVerificationRequest; import jakarta.transaction.Transactional; import java.util.List; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/ftm/server/user/GeneralUserSignupTest.java b/src/test/java/com/ftm/server/user/GeneralUserSignupTest.java index cc54c36..036933e 100644 --- a/src/test/java/com/ftm/server/user/GeneralUserSignupTest.java +++ b/src/test/java/com/ftm/server/user/GeneralUserSignupTest.java @@ -10,14 +10,15 @@ import com.epages.restdocs.apispec.ResourceSnippetParameters; import com.ftm.server.BaseTest; -import com.ftm.server.adapter.dto.request.GeneralUserSignupRequest; -import com.ftm.server.adapter.gateway.repository.EmailVerificationLogsRepository; +import com.ftm.server.application.dto.command.EmailVerificationLogCreationCommand; +import com.ftm.server.application.dto.command.GeneralUserCreationCommand; +import com.ftm.server.application.port.repository.EmailVerificationLogsRepository; +import com.ftm.server.application.service.UserService; import com.ftm.server.common.response.enums.ErrorResponseCode; -import com.ftm.server.domain.dto.command.EmailVerificationLogCreationCommand; -import com.ftm.server.domain.service.UserService; -import com.ftm.server.entity.entities.EmailVerificationLogs; -import com.ftm.server.entity.enums.AgeGroup; -import com.ftm.server.entity.enums.HashTag; +import com.ftm.server.domain.entity.EmailVerificationLogs; +import com.ftm.server.domain.enums.AgeGroup; +import com.ftm.server.domain.enums.HashTag; +import com.ftm.server.web.dto.request.GeneralUserSignupRequest; import jakarta.transaction.Transactional; import java.util.List; import org.junit.jupiter.api.Test; @@ -87,7 +88,7 @@ private RestDocumentationResultHandler getDocument(Integer identifier) { @Transactional void 일반회원가입_성공() throws Exception { // given - String email = "test1@gmail.com"; + String email = "test@gmail.com"; String code = "123456"; EmailVerificationLogCreationCommand command = @@ -116,7 +117,7 @@ private RestDocumentationResultHandler getDocument(Integer identifier) { // given GeneralUserSignupRequest request = new GeneralUserSignupRequest( - "test1@gmail.com", "123456", AgeGroup.FIFTIES, List.of(HashTag.PERFUME)); + "test@gmail.com", "123456", AgeGroup.FIFTIES, List.of(HashTag.PERFUME)); // when ResultActions resultActions = getResultActions(request); @@ -135,13 +136,11 @@ private RestDocumentationResultHandler getDocument(Integer identifier) { @Transactional void 일반회원가입_실패2() throws Exception { // given - - // String email = "test@gmail.com"; - // HashTag[] hashTags = {HashTag.PERFUME}; - // GeneralUserCreationCommand command = - // new GeneralUserCreationCommand(email, "123456", "닉넴", AgeGroup.FIFTIES, - // hashTags); - // userService.createGeneralUser(command); + String email = "test@gmail.com"; + HashTag[] hashTags = {HashTag.PERFUME}; + GeneralUserCreationCommand command = + new GeneralUserCreationCommand(email, "123456", "닉넴", AgeGroup.FIFTIES, hashTags); + userService.createGeneralUser(command); GeneralUserSignupRequest request = new GeneralUserSignupRequest(