From a53aa6dd22a94998e38f512aea6a6bbda4ca0e1a Mon Sep 17 00:00:00 2001 From: ohj4312 Date: Tue, 4 Jun 2024 16:51:56 +0900 Subject: [PATCH 01/10] feat: update nickName API --- .../adapter/user/UserController.java | 15 +++++++++++---- .../user/dto/request/UserUpdateRequest.java | 19 +++++++++++++++++++ .../infrastructure/UserRepositoryImpl.java | 5 ++++- .../application/in/usecase/UserUseCase.java | 3 ++- .../application/service/user/UserService.java | 8 ++++++++ .../companity/domain/user/User.java | 4 ++++ 6 files changed, 48 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/codecrafters/companity/adapter/user/dto/request/UserUpdateRequest.java diff --git a/src/main/java/com/codecrafters/companity/adapter/user/UserController.java b/src/main/java/com/codecrafters/companity/adapter/user/UserController.java index 8bcd909..9cd0f22 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/UserController.java +++ b/src/main/java/com/codecrafters/companity/adapter/user/UserController.java @@ -1,16 +1,14 @@ package com.codecrafters.companity.adapter.user; import com.codecrafters.companity.adapter.user.dto.request.UserCreateRequest; +import com.codecrafters.companity.adapter.user.dto.request.UserUpdateRequest; import com.codecrafters.companity.adapter.user.dto.resposne.UserCreateResponse; import com.codecrafters.companity.application.in.usecase.UserUseCase; import com.codecrafters.companity.domain.user.User; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map; @@ -29,4 +27,13 @@ public ResponseEntity signUp (@RequestBody UserCreateRequest return new ResponseEntity<>(response, HttpStatus.OK); } + + // FIXME: 인증 Token을 이용해 userId를 가져오는 방식으로 변경 필요 /users/{userId}/nick-name -> /users/nick-name + @PatchMapping("/{userId}/nick-name") + public ResponseEntity signUp (@PathVariable("userId") String userId, @RequestBody UserUpdateRequest request) { + User user = userUseCase.updateNickName(userId, request.getNickName()); + UserCreateResponse response = UserCreateResponse.from(user); + + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } } diff --git a/src/main/java/com/codecrafters/companity/adapter/user/dto/request/UserUpdateRequest.java b/src/main/java/com/codecrafters/companity/adapter/user/dto/request/UserUpdateRequest.java new file mode 100644 index 0000000..73d1430 --- /dev/null +++ b/src/main/java/com/codecrafters/companity/adapter/user/dto/request/UserUpdateRequest.java @@ -0,0 +1,19 @@ +package com.codecrafters.companity.adapter.user.dto.request; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; + +/** + * UserId는 PK이므로 변경되지 않는다. + */ +@Getter +public class UserUpdateRequest { + private final String userName; + private final String nickName; + + public UserUpdateRequest(@JsonProperty("userName") String userName, @JsonProperty("nickName") String nickName) { + this.userName = userName; + this.nickName = nickName; + } + +} diff --git a/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java b/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java index 2086f17..4cc61c0 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java +++ b/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java @@ -26,7 +26,10 @@ public User save(User user) { @Override public User getUserById(String userId) { - UserEntity userEntity = userJPARepository.getById(userId); + UserEntity userEntity = userJPARepository.findById(userId).orElseThrow(() -> { + throw new IllegalArgumentException(); // FIXME : SCRUM-14 포함된 CUSTOMEXCEPTION 으로 변경 + }); + return userEntity.toDomain(); } } diff --git a/src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java b/src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java index 1be7b40..54913b6 100644 --- a/src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java +++ b/src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java @@ -4,5 +4,6 @@ import com.codecrafters.companity.domain.user.User; public interface UserUseCase { - public User signUp(UserCreateRequest user); + public User signUp(UserCreateRequest request); + public User updateNickName(String userId, String nickName); } diff --git a/src/main/java/com/codecrafters/companity/application/service/user/UserService.java b/src/main/java/com/codecrafters/companity/application/service/user/UserService.java index d31b4f1..726c2a1 100644 --- a/src/main/java/com/codecrafters/companity/application/service/user/UserService.java +++ b/src/main/java/com/codecrafters/companity/application/service/user/UserService.java @@ -20,4 +20,12 @@ public User signUp(UserCreateRequest request) { return userRepository.save(user); } + @Override + public User updateNickName(String userId, String nickName) { + User user = userRepository.getUserById(userId); + user.updateNickName(nickName); + + return userRepository.save(user); + } + } diff --git a/src/main/java/com/codecrafters/companity/domain/user/User.java b/src/main/java/com/codecrafters/companity/domain/user/User.java index 07d3c75..f13ebaa 100644 --- a/src/main/java/com/codecrafters/companity/domain/user/User.java +++ b/src/main/java/com/codecrafters/companity/domain/user/User.java @@ -30,4 +30,8 @@ public void validateUser() { if (this.userId == null) throw new IllegalArgumentException("userId is required."); if (this.userName == null) throw new IllegalArgumentException("userName is required."); } + + public void updateNickName(String nickName) { + this.nickName = nickName; + } } From 957b5708c50c7b9cc063f02856f23208af7874c3 Mon Sep 17 00:00:00 2001 From: ohj4312 Date: Tue, 4 Jun 2024 16:55:19 +0900 Subject: [PATCH 02/10] style: signUp validate method naming change for validateCreateUser --- .../companity/application/service/user/UserService.java | 3 ++- .../java/com/codecrafters/companity/domain/user/User.java | 2 +- .../com/codecrafters/companity/domain/user/UserTest.java | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/codecrafters/companity/application/service/user/UserService.java b/src/main/java/com/codecrafters/companity/application/service/user/UserService.java index 726c2a1..73a82f1 100644 --- a/src/main/java/com/codecrafters/companity/application/service/user/UserService.java +++ b/src/main/java/com/codecrafters/companity/application/service/user/UserService.java @@ -16,7 +16,8 @@ public class UserService implements UserUseCase { @Override public User signUp(UserCreateRequest request) { User user = User.from(request); - user.validateUser(); + user.validateCreateUser(); + return userRepository.save(user); } diff --git a/src/main/java/com/codecrafters/companity/domain/user/User.java b/src/main/java/com/codecrafters/companity/domain/user/User.java index f13ebaa..3ab7a14 100644 --- a/src/main/java/com/codecrafters/companity/domain/user/User.java +++ b/src/main/java/com/codecrafters/companity/domain/user/User.java @@ -26,7 +26,7 @@ public boolean equals(Object o) { return Objects.equals(userId, user.userId) && Objects.equals(userName, user.userName) && Objects.equals(nickName, user.nickName); } - public void validateUser() { + public void validateCreateUser() { if (this.userId == null) throw new IllegalArgumentException("userId is required."); if (this.userName == null) throw new IllegalArgumentException("userName is required."); } diff --git a/src/test/java/com/codecrafters/companity/domain/user/UserTest.java b/src/test/java/com/codecrafters/companity/domain/user/UserTest.java index 0f9c7c1..365dedf 100644 --- a/src/test/java/com/codecrafters/companity/domain/user/UserTest.java +++ b/src/test/java/com/codecrafters/companity/domain/user/UserTest.java @@ -34,8 +34,8 @@ public class UserTest { //when //then - Assertions.assertThrows(IllegalArgumentException.class, () -> userCase1.validateUser()); - Assertions.assertThrows(IllegalArgumentException.class, () -> userCase2.validateUser()); - Assertions.assertThrows(IllegalArgumentException.class, () -> userCase3.validateUser()); + Assertions.assertThrows(IllegalArgumentException.class, () -> userCase1.validateCreateUser()); + Assertions.assertThrows(IllegalArgumentException.class, () -> userCase2.validateCreateUser()); + Assertions.assertThrows(IllegalArgumentException.class, () -> userCase3.validateCreateUser()); } } From a6a44147af2143553f3afa201425efdf75795862 Mon Sep 17 00:00:00 2001 From: ohj4312 Date: Tue, 4 Jun 2024 16:57:00 +0900 Subject: [PATCH 03/10] refactor: Remove unnecessary setter method --- src/main/java/com/codecrafters/companity/domain/user/User.java | 1 - .../codecrafters/companity/mock/repository/UserInMemoryImpl.java | 1 - 2 files changed, 2 deletions(-) diff --git a/src/main/java/com/codecrafters/companity/domain/user/User.java b/src/main/java/com/codecrafters/companity/domain/user/User.java index 3ab7a14..6562b90 100644 --- a/src/main/java/com/codecrafters/companity/domain/user/User.java +++ b/src/main/java/com/codecrafters/companity/domain/user/User.java @@ -6,7 +6,6 @@ import java.util.Objects; @Getter -@Setter @Builder @AllArgsConstructor(access = AccessLevel.PRIVATE) @NoArgsConstructor(access = AccessLevel.PRIVATE) diff --git a/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java b/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java index b0bbfdc..7292697 100644 --- a/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java +++ b/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java @@ -10,7 +10,6 @@ public class UserInMemoryImpl implements UserRepository { private final Map repository = new ConcurrentHashMap<>(); @Override public User save(User user) { - user.setUserId(user.getUserId()); repository.put(user.getUserId(), user); return user; } From 2f1f902d34d5dfad57c3ae80612d0b8dcf91ba5e Mon Sep 17 00:00:00 2001 From: ohj4312 Date: Tue, 4 Jun 2024 17:20:54 +0900 Subject: [PATCH 04/10] refactor: Remove unnecessary converting UserCreateResponse method --- .../com/codecrafters/companity/adapter/user/UserController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/codecrafters/companity/adapter/user/UserController.java b/src/main/java/com/codecrafters/companity/adapter/user/UserController.java index 9cd0f22..2bb0f02 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/UserController.java +++ b/src/main/java/com/codecrafters/companity/adapter/user/UserController.java @@ -32,7 +32,6 @@ public ResponseEntity signUp (@RequestBody UserCreateRequest @PatchMapping("/{userId}/nick-name") public ResponseEntity signUp (@PathVariable("userId") String userId, @RequestBody UserUpdateRequest request) { User user = userUseCase.updateNickName(userId, request.getNickName()); - UserCreateResponse response = UserCreateResponse.from(user); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } From da4720bce1dd190916476e73751f10ce0dd33c90 Mon Sep 17 00:00:00 2001 From: ohj4312 Date: Tue, 4 Jun 2024 17:54:22 +0900 Subject: [PATCH 05/10] test: update nickName test --- .../service/user/UserServiceTest.java | 19 ++++++++++++++++++ .../companity/domain/user/UserTest.java | 20 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java b/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java index 91819f7..f8d97dd 100644 --- a/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java +++ b/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java @@ -17,6 +17,7 @@ public class UserServiceTest { public UserServiceTest() { userRepository = new UserInMemoryImpl(); userService = new UserService(userRepository); + userRepository.save(User.builder().userId(USER_ID).userName(USER_NAME).nickName(NICKNAME).build()); } @Test @@ -34,4 +35,22 @@ public UserServiceTest() { Assertions.assertEquals(request.getNickName(), user.getNickName()); }); } + + @Test + public void updateNickName() { + //given + String userId = USER_ID; + String newNickName = "NEW_NICK_NAME"; + + //when + User newUser = userService.updateNickName(userId, newNickName); + + //then + Assertions.assertAll(() -> { + Assertions.assertEquals(userId, newUser.getUserId()); + Assertions.assertEquals(USER_NAME, newUser.getUserName()); + Assertions.assertEquals(newNickName, newUser.getNickName()); + }); + } + } diff --git a/src/test/java/com/codecrafters/companity/domain/user/UserTest.java b/src/test/java/com/codecrafters/companity/domain/user/UserTest.java index 365dedf..d75d8d8 100644 --- a/src/test/java/com/codecrafters/companity/domain/user/UserTest.java +++ b/src/test/java/com/codecrafters/companity/domain/user/UserTest.java @@ -38,4 +38,24 @@ public class UserTest { Assertions.assertThrows(IllegalArgumentException.class, () -> userCase2.validateCreateUser()); Assertions.assertThrows(IllegalArgumentException.class, () -> userCase3.validateCreateUser()); } + + @Test + void updateNickName(){ + //given + User user = User.builder() + .userId(USER_ID) + .userName(USER_NAME) + .nickName(NICKNAME) + .build(); + + //when + user.updateNickName("NEW_NICK_NAME"); + + //then + Assertions.assertAll(() -> { + Assertions.assertEquals(USER_ID, user.getUserId()); + Assertions.assertEquals(USER_NAME, user.getUserName()); + Assertions.assertEquals("NEW_NICK_NAME", user.getNickName()); + }); + } } From b93325d89c47969a95a3abb86c9fd8aac5b2d050 Mon Sep 17 00:00:00 2001 From: ohj4312 Date: Mon, 10 Jun 2024 16:37:33 +0900 Subject: [PATCH 06/10] Merge SCRUM-14/delete-user --- .../companity/adapter/user/UserController.java | 9 ++++++++- .../user/infrastructure/UserRepositoryImpl.java | 12 ++++++++++-- .../application/in/usecase/UserUseCase.java | 3 ++- .../out/persistence/UserRepository.java | 2 ++ .../application/service/user/UserService.java | 8 ++++++++ .../application/service/user/UserServiceTest.java | 15 +++++++++++++++ .../mock/repository/UserInMemoryImpl.java | 12 +++++++++++- 7 files changed, 56 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/codecrafters/companity/adapter/user/UserController.java b/src/main/java/com/codecrafters/companity/adapter/user/UserController.java index 2bb0f02..c777b5c 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/UserController.java +++ b/src/main/java/com/codecrafters/companity/adapter/user/UserController.java @@ -25,7 +25,14 @@ public ResponseEntity signUp (@RequestBody UserCreateRequest User user = userUseCase.signUp(request); UserCreateResponse response = UserCreateResponse.from(user); - return new ResponseEntity<>(response, HttpStatus.OK); + return new ResponseEntity<>(response, HttpStatus.CREATED); + } + + @DeleteMapping("/{userId}") + public ResponseEntity delete (@PathVariable("userId") String userId) throws Exception { + userUseCase.delete(userId); + + return new ResponseEntity<>(HttpStatus.NO_CONTENT); } // FIXME: 인증 Token을 이용해 userId를 가져오는 방식으로 변경 필요 /users/{userId}/nick-name -> /users/nick-name diff --git a/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java b/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java index 4cc61c0..5d0fd8e 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java +++ b/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java @@ -2,9 +2,12 @@ import com.codecrafters.companity.adapter.user.infrastructure.jpa.UserEntity; import com.codecrafters.companity.adapter.user.infrastructure.jpa.UserJPARepository; +import com.codecrafters.companity.adapter.utility.dto.response.ResultCode; import com.codecrafters.companity.application.out.persistence.UserRepository; import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.exception.CustomException; import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Repository; @Repository @@ -25,11 +28,16 @@ public User save(User user) { } @Override - public User getUserById(String userId) { + public User getUserById(String userId){ UserEntity userEntity = userJPARepository.findById(userId).orElseThrow(() -> { - throw new IllegalArgumentException(); // FIXME : SCRUM-14 포함된 CUSTOMEXCEPTION 으로 변경 + throw new CustomException(HttpStatus.BAD_REQUEST, ResultCode.USER_NOT_FOUND, "user not found. userId : " + userId); }); return userEntity.toDomain(); } + + @Override + public void deleteById(String userId) { + userJPARepository.deleteById(userId); + } } diff --git a/src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java b/src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java index 54913b6..29966e1 100644 --- a/src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java +++ b/src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java @@ -4,6 +4,7 @@ import com.codecrafters.companity.domain.user.User; public interface UserUseCase { - public User signUp(UserCreateRequest request); + public User signUp(UserCreateRequest user); public User updateNickName(String userId, String nickName); + public void delete(String userId) throws Exception; } diff --git a/src/main/java/com/codecrafters/companity/application/out/persistence/UserRepository.java b/src/main/java/com/codecrafters/companity/application/out/persistence/UserRepository.java index 947fa77..4ac9bd0 100644 --- a/src/main/java/com/codecrafters/companity/application/out/persistence/UserRepository.java +++ b/src/main/java/com/codecrafters/companity/application/out/persistence/UserRepository.java @@ -5,4 +5,6 @@ public interface UserRepository { User save(User user); User getUserById(String userId); + + void deleteById(String userId); } diff --git a/src/main/java/com/codecrafters/companity/application/service/user/UserService.java b/src/main/java/com/codecrafters/companity/application/service/user/UserService.java index 73a82f1..3a5baa0 100644 --- a/src/main/java/com/codecrafters/companity/application/service/user/UserService.java +++ b/src/main/java/com/codecrafters/companity/application/service/user/UserService.java @@ -29,4 +29,12 @@ public User updateNickName(String userId, String nickName) { return userRepository.save(user); } + @Override + public void delete(String userId) { + User user = userRepository.getUserById(userId); + if (user == null) throw new IllegalArgumentException("user not found with UserID : " + userId); + + userRepository.deleteById(userId); + } + } diff --git a/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java b/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java index f8d97dd..0644607 100644 --- a/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java +++ b/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java @@ -3,6 +3,7 @@ import com.codecrafters.companity.adapter.user.dto.request.UserCreateRequest; import com.codecrafters.companity.application.out.persistence.UserRepository; import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.exception.CustomException; import com.codecrafters.companity.mock.repository.UserInMemoryImpl; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -53,4 +54,18 @@ public void updateNickName() { }); } + @Test + public void userId에_해당하는_특정_User를_삭제할_수_있다() { + //given + String userId = USER_ID; + UserCreateRequest request = new UserCreateRequest(userId, USER_NAME, NICKNAME); + User user = userService.signUp(request); + + //when + userService.delete(userId); + + //then + Assertions.assertThrows(CustomException.class, () -> userRepository.getUserById(userId)); + } + } diff --git a/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java b/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java index 7292697..40c6724 100644 --- a/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java +++ b/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java @@ -1,7 +1,11 @@ package com.codecrafters.companity.mock.repository; +import com.codecrafters.companity.adapter.utility.dto.response.ResultCode; import com.codecrafters.companity.application.out.persistence.UserRepository; import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.exception.CustomException; +import org.springframework.http.HttpStatus; + import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; @@ -16,7 +20,13 @@ public User save(User user) { @Override public User getUserById(String userId) { - if(!repository.containsKey(userId)) throw new IllegalArgumentException(); + if(!repository.containsKey(userId)) + throw new CustomException(HttpStatus.BAD_REQUEST, ResultCode.USER_NOT_FOUND, "user not found. userId : " + userId); return repository.get(userId); } + + @Override + public void deleteById(String userId) { + repository.remove(userId); + } } From 58c14ed69ed182a62ca397ece0efd96e61d267ef Mon Sep 17 00:00:00 2001 From: ohj4312 Date: Mon, 10 Jun 2024 16:51:07 +0900 Subject: [PATCH 07/10] =?UTF-8?q?refactor:=20user=20package=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infrastructure/jpa/QUserEntity.java | 41 ++++++++++++++++++ .../user/adapter/jpa/QUserEntity.java | 42 +++++++++++++++++++ .../jpa/comment/CommentEntity.java | 4 +- .../infrastructure/jpa/post/PostEntity.java | 2 +- .../adapter/post/out/ResponseComment.java | 2 +- .../adapter/post/out/ResponsePost.java | 2 +- .../application/service/post/PostFactory.java | 2 +- .../application/service/post/PostService.java | 4 +- .../companity/domain/post/Comment.java | 2 +- .../companity/domain/post/Post.java | 2 +- .../user => user/adapter}/ResponseUser.java | 2 +- .../user => user/adapter}/UserController.java | 15 +++---- .../dto/request/UserCreateRequest.java | 2 +- .../dto/request/UserUpdateRequest.java | 2 +- .../dto/resposne/UserCreateResponse.java | 4 +- .../infrastructure/UserRepositoryImpl.java | 10 ++--- .../infrastructure/jpa/UserEntity.java | 4 +- .../infrastructure/jpa/UserJPARepository.java | 2 +- .../application}/UserService.java | 10 ++--- .../application/port/in}/UserUseCase.java | 6 +-- .../application/port/out}/UserRepository.java | 4 +- .../{domain/user => user/domain}/User.java | 4 +- .../jpa/user/UserRepositoryImplTest.java | 2 +- .../service/post/PostServiceTest.java | 4 +- .../service/user/UserServiceTest.java | 7 ++-- .../domain/post/PostFactoryTest.java | 2 +- .../companity/domain/user/UserTest.java | 3 +- .../mock/repository/UserInMemoryImpl.java | 5 +-- .../user/adapter/UserControllerTest.java | 15 +++++++ .../dto/response/UserCreateResponseTest.java | 6 +-- 30 files changed, 153 insertions(+), 59 deletions(-) create mode 100644 src/main/generated/com/codecrafters/companity/user/adapter/infrastructure/jpa/QUserEntity.java create mode 100644 src/main/generated/com/codecrafters/companity/user/adapter/jpa/QUserEntity.java rename src/main/java/com/codecrafters/companity/{adapter/user => user/adapter}/ResponseUser.java (62%) rename src/main/java/com/codecrafters/companity/{adapter/user => user/adapter}/UserController.java (76%) rename src/main/java/com/codecrafters/companity/{adapter/user => user/adapter}/dto/request/UserCreateRequest.java (89%) rename src/main/java/com/codecrafters/companity/{adapter/user => user/adapter}/dto/request/UserUpdateRequest.java (87%) rename src/main/java/com/codecrafters/companity/{adapter/user => user/adapter}/dto/resposne/UserCreateResponse.java (81%) rename src/main/java/com/codecrafters/companity/{adapter/user => user/adapter}/infrastructure/UserRepositoryImpl.java (79%) rename src/main/java/com/codecrafters/companity/{adapter/user => user/adapter}/infrastructure/jpa/UserEntity.java (89%) rename src/main/java/com/codecrafters/companity/{adapter/user => user/adapter}/infrastructure/jpa/UserJPARepository.java (69%) rename src/main/java/com/codecrafters/companity/{application/service/user => user/application}/UserService.java (73%) rename src/main/java/com/codecrafters/companity/{application/in/usecase => user/application/port/in}/UserUseCase.java (55%) rename src/main/java/com/codecrafters/companity/{application/out/persistence => user/application/port/out}/UserRepository.java (54%) rename src/main/java/com/codecrafters/companity/{domain/user => user/domain}/User.java (90%) create mode 100644 src/test/java/com/codecrafters/companity/user/adapter/UserControllerTest.java rename src/test/java/com/codecrafters/companity/{adapter/user => user/adapter}/dto/response/UserCreateResponseTest.java (83%) diff --git a/src/main/generated/com/codecrafters/companity/user/adapter/infrastructure/jpa/QUserEntity.java b/src/main/generated/com/codecrafters/companity/user/adapter/infrastructure/jpa/QUserEntity.java new file mode 100644 index 0000000..25ae996 --- /dev/null +++ b/src/main/generated/com/codecrafters/companity/user/adapter/infrastructure/jpa/QUserEntity.java @@ -0,0 +1,41 @@ +package com.codecrafters.companity.user.adapter.infrastructure.jpa; + +import static com.querydsl.core.types.PathMetadataFactory.*; + +import com.querydsl.core.types.dsl.*; + +import com.querydsl.core.types.PathMetadata; +import javax.annotation.processing.Generated; +import com.querydsl.core.types.Path; + + +/** + * QUserEntity is a Querydsl query type for UserEntity + */ +@Generated("com.querydsl.codegen.DefaultEntitySerializer") +public class QUserEntity extends EntityPathBase { + + private static final long serialVersionUID = 586088658L; + + public static final QUserEntity userEntity = new QUserEntity("userEntity"); + + public final StringPath nickName = createString("nickName"); + + public final StringPath userId = createString("userId"); + + public final StringPath userName = createString("userName"); + + public QUserEntity(String variable) { + super(UserEntity.class, forVariable(variable)); + } + + public QUserEntity(Path path) { + super(path.getType(), path.getMetadata()); + } + + public QUserEntity(PathMetadata metadata) { + super(UserEntity.class, metadata); + } + +} + diff --git a/src/main/generated/com/codecrafters/companity/user/adapter/jpa/QUserEntity.java b/src/main/generated/com/codecrafters/companity/user/adapter/jpa/QUserEntity.java new file mode 100644 index 0000000..a51b5bd --- /dev/null +++ b/src/main/generated/com/codecrafters/companity/user/adapter/jpa/QUserEntity.java @@ -0,0 +1,42 @@ +package com.codecrafters.companity.user.adapter.jpa; + +import static com.querydsl.core.types.PathMetadataFactory.*; + +import com.codecrafters.companity.user.adapter.infrastructure.jpa.UserEntity; +import com.querydsl.core.types.dsl.*; + +import com.querydsl.core.types.PathMetadata; +import javax.annotation.processing.Generated; +import com.querydsl.core.types.Path; + + +/** + * QUserEntity is a Querydsl query type for UserEntity + */ +@Generated("com.querydsl.codegen.DefaultEntitySerializer") +public class QUserEntity extends EntityPathBase { + + private static final long serialVersionUID = 586088658L; + + public static final QUserEntity userEntity = new QUserEntity("userEntity"); + + public final NumberPath id = createNumber("id", Long.class); + + public final StringPath name = createString("name"); + + public final StringPath nickName = createString("nickName"); + + public QUserEntity(String variable) { + super(UserEntity.class, forVariable(variable)); + } + + public QUserEntity(Path path) { + super(path.getType(), path.getMetadata()); + } + + public QUserEntity(PathMetadata metadata) { + super(UserEntity.class, metadata); + } + +} + diff --git a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/comment/CommentEntity.java b/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/comment/CommentEntity.java index 48f6f87..fa230f7 100644 --- a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/comment/CommentEntity.java +++ b/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/comment/CommentEntity.java @@ -2,13 +2,11 @@ import com.codecrafters.companity.adapter.infrastructure.jpa.common.BaseTimeEntity; import com.codecrafters.companity.adapter.infrastructure.jpa.post.PostEntity; -import com.codecrafters.companity.adapter.user.infrastructure.jpa.UserEntity; +import com.codecrafters.companity.user.adapter.infrastructure.jpa.UserEntity; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; -import java.time.LocalDateTime; - @Entity(name = "Comment") @Getter @Setter diff --git a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostEntity.java b/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostEntity.java index e42e596..5717e11 100644 --- a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostEntity.java +++ b/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostEntity.java @@ -2,7 +2,7 @@ import com.codecrafters.companity.adapter.infrastructure.jpa.comment.CommentEntity; import com.codecrafters.companity.adapter.infrastructure.jpa.common.BaseTimeEntity; -import com.codecrafters.companity.adapter.user.infrastructure.jpa.UserEntity; +import com.codecrafters.companity.user.adapter.infrastructure.jpa.UserEntity; import com.codecrafters.companity.domain.enums.City; import com.codecrafters.companity.domain.enums.Sport; import jakarta.persistence.*; diff --git a/src/main/java/com/codecrafters/companity/adapter/post/out/ResponseComment.java b/src/main/java/com/codecrafters/companity/adapter/post/out/ResponseComment.java index 027adf5..20603f0 100644 --- a/src/main/java/com/codecrafters/companity/adapter/post/out/ResponseComment.java +++ b/src/main/java/com/codecrafters/companity/adapter/post/out/ResponseComment.java @@ -1,6 +1,6 @@ package com.codecrafters.companity.adapter.post.out; -import com.codecrafters.companity.adapter.user.ResponseUser; +import com.codecrafters.companity.user.adapter.ResponseUser; import java.time.LocalDateTime; diff --git a/src/main/java/com/codecrafters/companity/adapter/post/out/ResponsePost.java b/src/main/java/com/codecrafters/companity/adapter/post/out/ResponsePost.java index 7c054a8..0ba1cdf 100644 --- a/src/main/java/com/codecrafters/companity/adapter/post/out/ResponsePost.java +++ b/src/main/java/com/codecrafters/companity/adapter/post/out/ResponsePost.java @@ -1,6 +1,6 @@ package com.codecrafters.companity.adapter.post.out; -import com.codecrafters.companity.adapter.user.ResponseUser; +import com.codecrafters.companity.user.adapter.ResponseUser; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/com/codecrafters/companity/application/service/post/PostFactory.java b/src/main/java/com/codecrafters/companity/application/service/post/PostFactory.java index afc5a90..9f9f5d1 100644 --- a/src/main/java/com/codecrafters/companity/application/service/post/PostFactory.java +++ b/src/main/java/com/codecrafters/companity/application/service/post/PostFactory.java @@ -2,7 +2,7 @@ import com.codecrafters.companity.config.mapper.CompanityObjectMapper; import com.codecrafters.companity.domain.post.Post; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.domain.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/codecrafters/companity/application/service/post/PostService.java b/src/main/java/com/codecrafters/companity/application/service/post/PostService.java index e85875b..13b0afc 100644 --- a/src/main/java/com/codecrafters/companity/application/service/post/PostService.java +++ b/src/main/java/com/codecrafters/companity/application/service/post/PostService.java @@ -4,9 +4,9 @@ import com.codecrafters.companity.application.out.persistence.PostCriteria; import com.codecrafters.companity.application.out.utility.DateTimeProvider; import com.codecrafters.companity.application.out.persistence.PostRepository; -import com.codecrafters.companity.application.out.persistence.UserRepository; +import com.codecrafters.companity.user.application.port.out.UserRepository; import com.codecrafters.companity.domain.post.Post; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.domain.User; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/codecrafters/companity/domain/post/Comment.java b/src/main/java/com/codecrafters/companity/domain/post/Comment.java index b0d6d1e..b484d14 100644 --- a/src/main/java/com/codecrafters/companity/domain/post/Comment.java +++ b/src/main/java/com/codecrafters/companity/domain/post/Comment.java @@ -1,6 +1,6 @@ package com.codecrafters.companity.domain.post; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.domain.User; import java.time.LocalDateTime; diff --git a/src/main/java/com/codecrafters/companity/domain/post/Post.java b/src/main/java/com/codecrafters/companity/domain/post/Post.java index 3a2f8a6..d88226d 100644 --- a/src/main/java/com/codecrafters/companity/domain/post/Post.java +++ b/src/main/java/com/codecrafters/companity/domain/post/Post.java @@ -2,7 +2,7 @@ import com.codecrafters.companity.domain.enums.City; import com.codecrafters.companity.domain.enums.Sport; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.domain.User; import lombok.*; import java.time.LocalDateTime; diff --git a/src/main/java/com/codecrafters/companity/adapter/user/ResponseUser.java b/src/main/java/com/codecrafters/companity/user/adapter/ResponseUser.java similarity index 62% rename from src/main/java/com/codecrafters/companity/adapter/user/ResponseUser.java rename to src/main/java/com/codecrafters/companity/user/adapter/ResponseUser.java index c2d2ac0..302cfeb 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/ResponseUser.java +++ b/src/main/java/com/codecrafters/companity/user/adapter/ResponseUser.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.user; +package com.codecrafters.companity.user.adapter; public class ResponseUser { private Long id; private String nickname; diff --git a/src/main/java/com/codecrafters/companity/adapter/user/UserController.java b/src/main/java/com/codecrafters/companity/user/adapter/UserController.java similarity index 76% rename from src/main/java/com/codecrafters/companity/adapter/user/UserController.java rename to src/main/java/com/codecrafters/companity/user/adapter/UserController.java index c777b5c..e699450 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/UserController.java +++ b/src/main/java/com/codecrafters/companity/user/adapter/UserController.java @@ -1,18 +1,15 @@ -package com.codecrafters.companity.adapter.user; +package com.codecrafters.companity.user.adapter; -import com.codecrafters.companity.adapter.user.dto.request.UserCreateRequest; -import com.codecrafters.companity.adapter.user.dto.request.UserUpdateRequest; -import com.codecrafters.companity.adapter.user.dto.resposne.UserCreateResponse; -import com.codecrafters.companity.application.in.usecase.UserUseCase; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.adapter.dto.request.UserCreateRequest; +import com.codecrafters.companity.user.adapter.dto.request.UserUpdateRequest; +import com.codecrafters.companity.user.adapter.dto.resposne.UserCreateResponse; +import com.codecrafters.companity.user.application.port.in.UserUseCase; +import com.codecrafters.companity.user.domain.User; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import java.util.HashMap; -import java.util.Map; - @RestController @RequestMapping("/users") @RequiredArgsConstructor diff --git a/src/main/java/com/codecrafters/companity/adapter/user/dto/request/UserCreateRequest.java b/src/main/java/com/codecrafters/companity/user/adapter/dto/request/UserCreateRequest.java similarity index 89% rename from src/main/java/com/codecrafters/companity/adapter/user/dto/request/UserCreateRequest.java rename to src/main/java/com/codecrafters/companity/user/adapter/dto/request/UserCreateRequest.java index 91667a4..0b0758e 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/dto/request/UserCreateRequest.java +++ b/src/main/java/com/codecrafters/companity/user/adapter/dto/request/UserCreateRequest.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.user.dto.request; +package com.codecrafters.companity.user.adapter.dto.request; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; diff --git a/src/main/java/com/codecrafters/companity/adapter/user/dto/request/UserUpdateRequest.java b/src/main/java/com/codecrafters/companity/user/adapter/dto/request/UserUpdateRequest.java similarity index 87% rename from src/main/java/com/codecrafters/companity/adapter/user/dto/request/UserUpdateRequest.java rename to src/main/java/com/codecrafters/companity/user/adapter/dto/request/UserUpdateRequest.java index 73d1430..a601f13 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/dto/request/UserUpdateRequest.java +++ b/src/main/java/com/codecrafters/companity/user/adapter/dto/request/UserUpdateRequest.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.user.dto.request; +package com.codecrafters.companity.user.adapter.dto.request; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; diff --git a/src/main/java/com/codecrafters/companity/adapter/user/dto/resposne/UserCreateResponse.java b/src/main/java/com/codecrafters/companity/user/adapter/dto/resposne/UserCreateResponse.java similarity index 81% rename from src/main/java/com/codecrafters/companity/adapter/user/dto/resposne/UserCreateResponse.java rename to src/main/java/com/codecrafters/companity/user/adapter/dto/resposne/UserCreateResponse.java index ea9e9ff..0e17b4a 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/dto/resposne/UserCreateResponse.java +++ b/src/main/java/com/codecrafters/companity/user/adapter/dto/resposne/UserCreateResponse.java @@ -1,7 +1,7 @@ -package com.codecrafters.companity.adapter.user.dto.resposne; +package com.codecrafters.companity.user.adapter.dto.resposne; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.domain.User; import lombok.Getter; @Getter diff --git a/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java b/src/main/java/com/codecrafters/companity/user/adapter/infrastructure/UserRepositoryImpl.java similarity index 79% rename from src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java rename to src/main/java/com/codecrafters/companity/user/adapter/infrastructure/UserRepositoryImpl.java index 5d0fd8e..d6d906e 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/UserRepositoryImpl.java +++ b/src/main/java/com/codecrafters/companity/user/adapter/infrastructure/UserRepositoryImpl.java @@ -1,10 +1,10 @@ -package com.codecrafters.companity.adapter.user.infrastructure; +package com.codecrafters.companity.user.adapter.infrastructure; -import com.codecrafters.companity.adapter.user.infrastructure.jpa.UserEntity; -import com.codecrafters.companity.adapter.user.infrastructure.jpa.UserJPARepository; +import com.codecrafters.companity.user.adapter.infrastructure.jpa.UserEntity; +import com.codecrafters.companity.user.adapter.infrastructure.jpa.UserJPARepository; import com.codecrafters.companity.adapter.utility.dto.response.ResultCode; -import com.codecrafters.companity.application.out.persistence.UserRepository; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.application.port.out.UserRepository; +import com.codecrafters.companity.user.domain.User; import com.codecrafters.companity.exception.CustomException; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; diff --git a/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/jpa/UserEntity.java b/src/main/java/com/codecrafters/companity/user/adapter/infrastructure/jpa/UserEntity.java similarity index 89% rename from src/main/java/com/codecrafters/companity/adapter/user/infrastructure/jpa/UserEntity.java rename to src/main/java/com/codecrafters/companity/user/adapter/infrastructure/jpa/UserEntity.java index d632fb0..3babdb2 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/jpa/UserEntity.java +++ b/src/main/java/com/codecrafters/companity/user/adapter/infrastructure/jpa/UserEntity.java @@ -1,9 +1,9 @@ -package com.codecrafters.companity.adapter.user.infrastructure.jpa; +package com.codecrafters.companity.user.adapter.infrastructure.jpa; import jakarta.persistence.Column; import lombok.Getter; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.domain.User; import jakarta.persistence.Entity; import jakarta.persistence.Id; import lombok.Builder; diff --git a/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/jpa/UserJPARepository.java b/src/main/java/com/codecrafters/companity/user/adapter/infrastructure/jpa/UserJPARepository.java similarity index 69% rename from src/main/java/com/codecrafters/companity/adapter/user/infrastructure/jpa/UserJPARepository.java rename to src/main/java/com/codecrafters/companity/user/adapter/infrastructure/jpa/UserJPARepository.java index e40444a..ca9bcb4 100644 --- a/src/main/java/com/codecrafters/companity/adapter/user/infrastructure/jpa/UserJPARepository.java +++ b/src/main/java/com/codecrafters/companity/user/adapter/infrastructure/jpa/UserJPARepository.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.user.infrastructure.jpa; +package com.codecrafters.companity.user.adapter.infrastructure.jpa; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/com/codecrafters/companity/application/service/user/UserService.java b/src/main/java/com/codecrafters/companity/user/application/UserService.java similarity index 73% rename from src/main/java/com/codecrafters/companity/application/service/user/UserService.java rename to src/main/java/com/codecrafters/companity/user/application/UserService.java index 3a5baa0..8ec9e03 100644 --- a/src/main/java/com/codecrafters/companity/application/service/user/UserService.java +++ b/src/main/java/com/codecrafters/companity/user/application/UserService.java @@ -1,9 +1,9 @@ -package com.codecrafters.companity.application.service.user; +package com.codecrafters.companity.user.application; -import com.codecrafters.companity.adapter.user.dto.request.UserCreateRequest; -import com.codecrafters.companity.application.in.usecase.UserUseCase; -import com.codecrafters.companity.application.out.persistence.UserRepository; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.adapter.dto.request.UserCreateRequest; +import com.codecrafters.companity.user.application.port.in.UserUseCase; +import com.codecrafters.companity.user.application.port.out.UserRepository; +import com.codecrafters.companity.user.domain.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java b/src/main/java/com/codecrafters/companity/user/application/port/in/UserUseCase.java similarity index 55% rename from src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java rename to src/main/java/com/codecrafters/companity/user/application/port/in/UserUseCase.java index 29966e1..c45d2bd 100644 --- a/src/main/java/com/codecrafters/companity/application/in/usecase/UserUseCase.java +++ b/src/main/java/com/codecrafters/companity/user/application/port/in/UserUseCase.java @@ -1,7 +1,7 @@ -package com.codecrafters.companity.application.in.usecase; +package com.codecrafters.companity.user.application.port.in; -import com.codecrafters.companity.adapter.user.dto.request.UserCreateRequest; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.adapter.dto.request.UserCreateRequest; +import com.codecrafters.companity.user.domain.User; public interface UserUseCase { public User signUp(UserCreateRequest user); diff --git a/src/main/java/com/codecrafters/companity/application/out/persistence/UserRepository.java b/src/main/java/com/codecrafters/companity/user/application/port/out/UserRepository.java similarity index 54% rename from src/main/java/com/codecrafters/companity/application/out/persistence/UserRepository.java rename to src/main/java/com/codecrafters/companity/user/application/port/out/UserRepository.java index 4ac9bd0..e9470a3 100644 --- a/src/main/java/com/codecrafters/companity/application/out/persistence/UserRepository.java +++ b/src/main/java/com/codecrafters/companity/user/application/port/out/UserRepository.java @@ -1,6 +1,6 @@ -package com.codecrafters.companity.application.out.persistence; +package com.codecrafters.companity.user.application.port.out; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.domain.User; public interface UserRepository { User save(User user); diff --git a/src/main/java/com/codecrafters/companity/domain/user/User.java b/src/main/java/com/codecrafters/companity/user/domain/User.java similarity index 90% rename from src/main/java/com/codecrafters/companity/domain/user/User.java rename to src/main/java/com/codecrafters/companity/user/domain/User.java index 6562b90..d02a7e3 100644 --- a/src/main/java/com/codecrafters/companity/domain/user/User.java +++ b/src/main/java/com/codecrafters/companity/user/domain/User.java @@ -1,6 +1,6 @@ -package com.codecrafters.companity.domain.user; +package com.codecrafters.companity.user.domain; -import com.codecrafters.companity.adapter.user.dto.request.UserCreateRequest; +import com.codecrafters.companity.user.adapter.dto.request.UserCreateRequest; import lombok.*; import java.util.Objects; diff --git a/src/test/java/com/codecrafters/companity/adapter/infrastructure/jpa/user/UserRepositoryImplTest.java b/src/test/java/com/codecrafters/companity/adapter/infrastructure/jpa/user/UserRepositoryImplTest.java index cccd49e..43fda70 100644 --- a/src/test/java/com/codecrafters/companity/adapter/infrastructure/jpa/user/UserRepositoryImplTest.java +++ b/src/test/java/com/codecrafters/companity/adapter/infrastructure/jpa/user/UserRepositoryImplTest.java @@ -1,6 +1,6 @@ package com.codecrafters.companity.adapter.infrastructure.jpa.user; -import com.codecrafters.companity.application.out.persistence.UserRepository; +import com.codecrafters.companity.user.application.port.out.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; diff --git a/src/test/java/com/codecrafters/companity/application/service/post/PostServiceTest.java b/src/test/java/com/codecrafters/companity/application/service/post/PostServiceTest.java index 7c2ade5..86d1714 100644 --- a/src/test/java/com/codecrafters/companity/application/service/post/PostServiceTest.java +++ b/src/test/java/com/codecrafters/companity/application/service/post/PostServiceTest.java @@ -3,10 +3,10 @@ import com.codecrafters.companity.mock.repository.PostInMemoryImpl; import com.codecrafters.companity.mock.repository.UserInMemoryImpl; import com.codecrafters.companity.application.out.persistence.PostRepository; -import com.codecrafters.companity.application.out.persistence.UserRepository; +import com.codecrafters.companity.user.application.port.out.UserRepository; import com.codecrafters.companity.config.mapper.CustomModelMapper; import com.codecrafters.companity.domain.post.Post; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.domain.User; import com.codecrafters.companity.mock.TestDateTimeProvider; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java b/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java index 0644607..899d6f4 100644 --- a/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java +++ b/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java @@ -1,8 +1,9 @@ package com.codecrafters.companity.application.service.user; -import com.codecrafters.companity.adapter.user.dto.request.UserCreateRequest; -import com.codecrafters.companity.application.out.persistence.UserRepository; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.adapter.dto.request.UserCreateRequest; +import com.codecrafters.companity.user.application.UserService; +import com.codecrafters.companity.user.application.port.out.UserRepository; +import com.codecrafters.companity.user.domain.User; import com.codecrafters.companity.exception.CustomException; import com.codecrafters.companity.mock.repository.UserInMemoryImpl; import org.junit.jupiter.api.Assertions; diff --git a/src/test/java/com/codecrafters/companity/domain/post/PostFactoryTest.java b/src/test/java/com/codecrafters/companity/domain/post/PostFactoryTest.java index f26cccb..1a1959a 100644 --- a/src/test/java/com/codecrafters/companity/domain/post/PostFactoryTest.java +++ b/src/test/java/com/codecrafters/companity/domain/post/PostFactoryTest.java @@ -2,7 +2,7 @@ import com.codecrafters.companity.application.service.post.PostFactory; import com.codecrafters.companity.config.mapper.CustomModelMapper; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.domain.User; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/codecrafters/companity/domain/user/UserTest.java b/src/test/java/com/codecrafters/companity/domain/user/UserTest.java index d75d8d8..1080f68 100644 --- a/src/test/java/com/codecrafters/companity/domain/user/UserTest.java +++ b/src/test/java/com/codecrafters/companity/domain/user/UserTest.java @@ -1,6 +1,7 @@ package com.codecrafters.companity.domain.user; -import com.codecrafters.companity.adapter.user.dto.request.UserCreateRequest; +import com.codecrafters.companity.user.adapter.dto.request.UserCreateRequest; +import com.codecrafters.companity.user.domain.User; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java b/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java index 40c6724..a5012dd 100644 --- a/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java +++ b/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java @@ -1,14 +1,13 @@ package com.codecrafters.companity.mock.repository; import com.codecrafters.companity.adapter.utility.dto.response.ResultCode; -import com.codecrafters.companity.application.out.persistence.UserRepository; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.application.port.out.UserRepository; +import com.codecrafters.companity.user.domain.User; import com.codecrafters.companity.exception.CustomException; import org.springframework.http.HttpStatus; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicLong; public class UserInMemoryImpl implements UserRepository { private final Map repository = new ConcurrentHashMap<>(); diff --git a/src/test/java/com/codecrafters/companity/user/adapter/UserControllerTest.java b/src/test/java/com/codecrafters/companity/user/adapter/UserControllerTest.java new file mode 100644 index 0000000..302f6cc --- /dev/null +++ b/src/test/java/com/codecrafters/companity/user/adapter/UserControllerTest.java @@ -0,0 +1,15 @@ +package com.codecrafters.companity.user.adapter; + +import com.codecrafters.companity.user.adapter.dto.request.UserCreateRequest; + +public class UserControllerTest { + +// private final UserUseCase userUseCase; + + public void signUp (UserCreateRequest request) { +// User user = userUseCase.signUp(request); +// UserCreateResponse response = UserCreateResponse.from(user); + +// return new ResponseEntity<>(response, HttpStatus.OK); + } +} diff --git a/src/test/java/com/codecrafters/companity/adapter/user/dto/response/UserCreateResponseTest.java b/src/test/java/com/codecrafters/companity/user/adapter/dto/response/UserCreateResponseTest.java similarity index 83% rename from src/test/java/com/codecrafters/companity/adapter/user/dto/response/UserCreateResponseTest.java rename to src/test/java/com/codecrafters/companity/user/adapter/dto/response/UserCreateResponseTest.java index fbd799a..f8d3a81 100644 --- a/src/test/java/com/codecrafters/companity/adapter/user/dto/response/UserCreateResponseTest.java +++ b/src/test/java/com/codecrafters/companity/user/adapter/dto/response/UserCreateResponseTest.java @@ -1,7 +1,7 @@ -package com.codecrafters.companity.adapter.user.dto.response; +package com.codecrafters.companity.user.adapter.dto.response; -import com.codecrafters.companity.adapter.user.dto.resposne.UserCreateResponse; -import com.codecrafters.companity.domain.user.User; +import com.codecrafters.companity.user.adapter.dto.resposne.UserCreateResponse; +import com.codecrafters.companity.user.domain.User; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; From 60f617c06565b509e3d30964ca3bd6f4c1285d77 Mon Sep 17 00:00:00 2001 From: ohj4312 Date: Mon, 10 Jun 2024 16:55:45 +0900 Subject: [PATCH 08/10] =?UTF-8?q?refactor:=20common=20package=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utility => common/adapter}/LocalDateTimeProvider.java | 2 +- .../user/adapter/infrastructure/UserRepositoryImpl.java | 2 +- .../utility => common/adapter}/CustomModelMapperTest.java | 2 +- .../companity/mock/repository/UserInMemoryImpl.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename src/main/java/com/codecrafters/companity/{adapter/utility => common/adapter}/LocalDateTimeProvider.java (86%) rename src/test/java/com/codecrafters/companity/{adapter/utility => common/adapter}/CustomModelMapperTest.java (98%) diff --git a/src/main/java/com/codecrafters/companity/adapter/utility/LocalDateTimeProvider.java b/src/main/java/com/codecrafters/companity/common/adapter/LocalDateTimeProvider.java similarity index 86% rename from src/main/java/com/codecrafters/companity/adapter/utility/LocalDateTimeProvider.java rename to src/main/java/com/codecrafters/companity/common/adapter/LocalDateTimeProvider.java index 8da3a4c..c60cc11 100644 --- a/src/main/java/com/codecrafters/companity/adapter/utility/LocalDateTimeProvider.java +++ b/src/main/java/com/codecrafters/companity/common/adapter/LocalDateTimeProvider.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.utility; +package com.codecrafters.companity.common.adapter; import com.codecrafters.companity.application.out.utility.DateTimeProvider; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/codecrafters/companity/user/adapter/infrastructure/UserRepositoryImpl.java b/src/main/java/com/codecrafters/companity/user/adapter/infrastructure/UserRepositoryImpl.java index d6d906e..c10be35 100644 --- a/src/main/java/com/codecrafters/companity/user/adapter/infrastructure/UserRepositoryImpl.java +++ b/src/main/java/com/codecrafters/companity/user/adapter/infrastructure/UserRepositoryImpl.java @@ -2,7 +2,7 @@ import com.codecrafters.companity.user.adapter.infrastructure.jpa.UserEntity; import com.codecrafters.companity.user.adapter.infrastructure.jpa.UserJPARepository; -import com.codecrafters.companity.adapter.utility.dto.response.ResultCode; +import com.codecrafters.companity.common.adapter.dto.response.ResultCode; import com.codecrafters.companity.user.application.port.out.UserRepository; import com.codecrafters.companity.user.domain.User; import com.codecrafters.companity.exception.CustomException; diff --git a/src/test/java/com/codecrafters/companity/adapter/utility/CustomModelMapperTest.java b/src/test/java/com/codecrafters/companity/common/adapter/CustomModelMapperTest.java similarity index 98% rename from src/test/java/com/codecrafters/companity/adapter/utility/CustomModelMapperTest.java rename to src/test/java/com/codecrafters/companity/common/adapter/CustomModelMapperTest.java index f830a40..9fe92b8 100644 --- a/src/test/java/com/codecrafters/companity/adapter/utility/CustomModelMapperTest.java +++ b/src/test/java/com/codecrafters/companity/common/adapter/CustomModelMapperTest.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.utility; +package com.codecrafters.companity.common.adapter; import com.codecrafters.companity.adapter.infrastructure.jpa.post.PostEntity; import com.codecrafters.companity.config.mapper.CustomModelMapper; diff --git a/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java b/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java index a5012dd..a725941 100644 --- a/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java +++ b/src/test/java/com/codecrafters/companity/mock/repository/UserInMemoryImpl.java @@ -1,6 +1,6 @@ package com.codecrafters.companity.mock.repository; -import com.codecrafters.companity.adapter.utility.dto.response.ResultCode; +import com.codecrafters.companity.common.adapter.dto.response.ResultCode; import com.codecrafters.companity.user.application.port.out.UserRepository; import com.codecrafters.companity.user.domain.User; import com.codecrafters.companity.exception.CustomException; From 2b258c2b7968e74171fb02ad900b55f779e85d92 Mon Sep 17 00:00:00 2001 From: ohj4312 Date: Mon, 10 Jun 2024 17:18:57 +0900 Subject: [PATCH 09/10] style: rename update nickName test method --- .../companity/application/service/user/UserServiceTest.java | 2 +- .../com/codecrafters/companity/domain/user/UserTest.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java b/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java index 899d6f4..3854004 100644 --- a/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java +++ b/src/test/java/com/codecrafters/companity/application/service/user/UserServiceTest.java @@ -39,7 +39,7 @@ public UserServiceTest() { } @Test - public void updateNickName() { + public void 사용자의_nickName을_변경할_수_있다() { //given String userId = USER_ID; String newNickName = "NEW_NICK_NAME"; diff --git a/src/test/java/com/codecrafters/companity/domain/user/UserTest.java b/src/test/java/com/codecrafters/companity/domain/user/UserTest.java index 1080f68..254d2b5 100644 --- a/src/test/java/com/codecrafters/companity/domain/user/UserTest.java +++ b/src/test/java/com/codecrafters/companity/domain/user/UserTest.java @@ -41,16 +41,17 @@ public class UserTest { } @Test - void updateNickName(){ + void 사용자의_nickName을_새로운_nick_name으로_변경한다(){ //given User user = User.builder() .userId(USER_ID) .userName(USER_NAME) .nickName(NICKNAME) .build(); + String newNickName = "NEW_NICK_NAME"; //when - user.updateNickName("NEW_NICK_NAME"); + user.updateNickName(newNickName); //then Assertions.assertAll(() -> { From 07031ccf215846f6765a6bbfeebad4e5bb882cef Mon Sep 17 00:00:00 2001 From: ohj4312 Date: Mon, 10 Jun 2024 17:20:12 +0900 Subject: [PATCH 10/10] =?UTF-8?q?refactor:=20post,comment=20package=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infrastructure/jpa/QUserEntity.java | 2 +- .../dto/response}/ResponseComment.java | 2 +- .../infrastructure/jpa}/CommentEntity.java | 6 +-- .../post => comment/domain}/Comment.java | 2 +- .../adapter/ExceptionControllerAdvice.java | 23 +++++++++ .../common/adapter/LocalDateTimeProvider.java | 2 +- .../dto/response/ExceptionResponse.java | 24 +++++++++ .../adapter/dto/response/ResultCode.java | 14 ++++++ .../infrastructure/jpa}/BaseTimeEntity.java | 2 +- .../application}/DateTimeProvider.java | 2 +- .../config/mapper/CustomModelMapper.java | 8 +-- .../companity/domain/post/OrderType.java | 5 -- .../companity/exception/CustomException.java | 49 +++++++++++++++++++ .../post => post/adapter}/PostController.java | 12 ++--- .../adapter/dto/request}/RequestPost.java | 2 +- .../adapter/dto/response}/ResponsePost.java | 2 +- .../infrastructure}/PostRepositoryImpl.java | 18 ++++--- .../infrastructure/jpa}/PostEntity.java | 10 ++-- .../jpa}/PostJPARepository.java | 2 +- .../application}/PostFactory.java | 4 +- .../application}/PostService.java | 12 ++--- .../application/port/in}/PostUseCase.java | 6 +-- .../port}/out/persistence/PostCriteria.java | 8 +-- .../port}/out/persistence/PostRepository.java | 4 +- .../{domain/post => post/domain}/Post.java | 7 +-- .../{ => post}/domain/enums/City.java | 2 +- .../post/domain/enums/OrderType.java | 5 ++ .../{ => post}/domain/enums/Sport.java | 2 +- .../jpa/post/PostRepositoryImplTest.java | 10 ++-- .../service/post/PostServiceTest.java | 6 ++- .../common/adapter/CustomModelMapperTest.java | 4 +- .../domain/post/PostFactoryTest.java | 3 +- .../companity/mock/TestDateTimeProvider.java | 2 +- .../mock/repository/PostInMemoryImpl.java | 6 +-- .../static_reference/PostStatic.java | 4 +- 35 files changed, 195 insertions(+), 77 deletions(-) rename src/main/java/com/codecrafters/companity/{adapter/post/out => comment/adapter/dto/response}/ResponseComment.java (79%) rename src/main/java/com/codecrafters/companity/{adapter/infrastructure/jpa/comment => comment/adapter/infrastructure/jpa}/CommentEntity.java (71%) rename src/main/java/com/codecrafters/companity/{domain/post => comment/domain}/Comment.java (81%) create mode 100644 src/main/java/com/codecrafters/companity/common/adapter/ExceptionControllerAdvice.java create mode 100644 src/main/java/com/codecrafters/companity/common/adapter/dto/response/ExceptionResponse.java create mode 100644 src/main/java/com/codecrafters/companity/common/adapter/dto/response/ResultCode.java rename src/main/java/com/codecrafters/companity/{adapter/infrastructure/jpa/common => common/adapter/infrastructure/jpa}/BaseTimeEntity.java (88%) rename src/main/java/com/codecrafters/companity/{application/out/utility => common/application}/DateTimeProvider.java (62%) delete mode 100644 src/main/java/com/codecrafters/companity/domain/post/OrderType.java create mode 100644 src/main/java/com/codecrafters/companity/exception/CustomException.java rename src/main/java/com/codecrafters/companity/{adapter/post => post/adapter}/PostController.java (76%) rename src/main/java/com/codecrafters/companity/{adapter/post/in => post/adapter/dto/request}/RequestPost.java (65%) rename src/main/java/com/codecrafters/companity/{adapter/post/out => post/adapter/dto/response}/ResponsePost.java (87%) rename src/main/java/com/codecrafters/companity/{adapter/infrastructure/jpa/post => post/adapter/infrastructure}/PostRepositoryImpl.java (75%) rename src/main/java/com/codecrafters/companity/{adapter/infrastructure/jpa/post => post/adapter/infrastructure/jpa}/PostEntity.java (68%) rename src/main/java/com/codecrafters/companity/{adapter/infrastructure/jpa/post => post/adapter/infrastructure/jpa}/PostJPARepository.java (67%) rename src/main/java/com/codecrafters/companity/{application/service/post => post/application}/PostFactory.java (86%) rename src/main/java/com/codecrafters/companity/{application/service/post => post/application}/PostService.java (76%) rename src/main/java/com/codecrafters/companity/{application/in/usecase => post/application/port/in}/PostUseCase.java (53%) rename src/main/java/com/codecrafters/companity/{application => post/application/port}/out/persistence/PostCriteria.java (55%) rename src/main/java/com/codecrafters/companity/{application => post/application/port}/out/persistence/PostRepository.java (65%) rename src/main/java/com/codecrafters/companity/{domain/post => post/domain}/Post.java (71%) rename src/main/java/com/codecrafters/companity/{ => post}/domain/enums/City.java (92%) create mode 100644 src/main/java/com/codecrafters/companity/post/domain/enums/OrderType.java rename src/main/java/com/codecrafters/companity/{ => post}/domain/enums/Sport.java (88%) diff --git a/src/main/generated/com/codecrafters/companity/user/adapter/infrastructure/jpa/QUserEntity.java b/src/main/generated/com/codecrafters/companity/user/adapter/infrastructure/jpa/QUserEntity.java index 25ae996..37bf284 100644 --- a/src/main/generated/com/codecrafters/companity/user/adapter/infrastructure/jpa/QUserEntity.java +++ b/src/main/generated/com/codecrafters/companity/user/adapter/infrastructure/jpa/QUserEntity.java @@ -15,7 +15,7 @@ @Generated("com.querydsl.codegen.DefaultEntitySerializer") public class QUserEntity extends EntityPathBase { - private static final long serialVersionUID = 586088658L; + private static final long serialVersionUID = 1701790324L; public static final QUserEntity userEntity = new QUserEntity("userEntity"); diff --git a/src/main/java/com/codecrafters/companity/adapter/post/out/ResponseComment.java b/src/main/java/com/codecrafters/companity/comment/adapter/dto/response/ResponseComment.java similarity index 79% rename from src/main/java/com/codecrafters/companity/adapter/post/out/ResponseComment.java rename to src/main/java/com/codecrafters/companity/comment/adapter/dto/response/ResponseComment.java index 20603f0..31ea375 100644 --- a/src/main/java/com/codecrafters/companity/adapter/post/out/ResponseComment.java +++ b/src/main/java/com/codecrafters/companity/comment/adapter/dto/response/ResponseComment.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.post.out; +package com.codecrafters.companity.comment.adapter.dto.response; import com.codecrafters.companity.user.adapter.ResponseUser; diff --git a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/comment/CommentEntity.java b/src/main/java/com/codecrafters/companity/comment/adapter/infrastructure/jpa/CommentEntity.java similarity index 71% rename from src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/comment/CommentEntity.java rename to src/main/java/com/codecrafters/companity/comment/adapter/infrastructure/jpa/CommentEntity.java index fa230f7..f82fb75 100644 --- a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/comment/CommentEntity.java +++ b/src/main/java/com/codecrafters/companity/comment/adapter/infrastructure/jpa/CommentEntity.java @@ -1,7 +1,7 @@ -package com.codecrafters.companity.adapter.infrastructure.jpa.comment; +package com.codecrafters.companity.comment.adapter.infrastructure.jpa; -import com.codecrafters.companity.adapter.infrastructure.jpa.common.BaseTimeEntity; -import com.codecrafters.companity.adapter.infrastructure.jpa.post.PostEntity; +import com.codecrafters.companity.common.adapter.infrastructure.jpa.BaseTimeEntity; +import com.codecrafters.companity.post.adapter.infrastructure.jpa.PostEntity; import com.codecrafters.companity.user.adapter.infrastructure.jpa.UserEntity; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/codecrafters/companity/domain/post/Comment.java b/src/main/java/com/codecrafters/companity/comment/domain/Comment.java similarity index 81% rename from src/main/java/com/codecrafters/companity/domain/post/Comment.java rename to src/main/java/com/codecrafters/companity/comment/domain/Comment.java index b484d14..16a522b 100644 --- a/src/main/java/com/codecrafters/companity/domain/post/Comment.java +++ b/src/main/java/com/codecrafters/companity/comment/domain/Comment.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.domain.post; +package com.codecrafters.companity.comment.domain; import com.codecrafters.companity.user.domain.User; diff --git a/src/main/java/com/codecrafters/companity/common/adapter/ExceptionControllerAdvice.java b/src/main/java/com/codecrafters/companity/common/adapter/ExceptionControllerAdvice.java new file mode 100644 index 0000000..58903e3 --- /dev/null +++ b/src/main/java/com/codecrafters/companity/common/adapter/ExceptionControllerAdvice.java @@ -0,0 +1,23 @@ +package com.codecrafters.companity.common.adapter; + +import com.codecrafters.companity.common.adapter.dto.response.ExceptionResponse; +import com.codecrafters.companity.exception.CustomException; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + + +@RestControllerAdvice(basePackages = "com.codecrafters.companity") +public class ExceptionControllerAdvice { + @ExceptionHandler(IllegalArgumentException.class) + public ResponseEntity exceptionHandler(IllegalArgumentException e) { + return new ResponseEntity(e.getMessage(), HttpStatus.BAD_REQUEST); + } + + @ExceptionHandler(CustomException.class) + public ResponseEntity exceptionHandler(CustomException e) { + + return ExceptionResponse.toResponseEntity(e); + } +} diff --git a/src/main/java/com/codecrafters/companity/common/adapter/LocalDateTimeProvider.java b/src/main/java/com/codecrafters/companity/common/adapter/LocalDateTimeProvider.java index c60cc11..7d6e65e 100644 --- a/src/main/java/com/codecrafters/companity/common/adapter/LocalDateTimeProvider.java +++ b/src/main/java/com/codecrafters/companity/common/adapter/LocalDateTimeProvider.java @@ -1,6 +1,6 @@ package com.codecrafters.companity.common.adapter; -import com.codecrafters.companity.application.out.utility.DateTimeProvider; +import com.codecrafters.companity.common.application.DateTimeProvider; import org.springframework.stereotype.Component; import java.time.LocalDateTime; diff --git a/src/main/java/com/codecrafters/companity/common/adapter/dto/response/ExceptionResponse.java b/src/main/java/com/codecrafters/companity/common/adapter/dto/response/ExceptionResponse.java new file mode 100644 index 0000000..9f624a7 --- /dev/null +++ b/src/main/java/com/codecrafters/companity/common/adapter/dto/response/ExceptionResponse.java @@ -0,0 +1,24 @@ +package com.codecrafters.companity.common.adapter.dto.response; + +import com.codecrafters.companity.exception.CustomException; +import lombok.Builder; +import org.springframework.http.ResponseEntity; + +@Builder +public class ExceptionResponse { + private String code; + private String msg; + + public static ResponseEntity toResponseEntity(CustomException ex) { + ResultCode errorType = ex.getResultCode(); + String message = ex.getMessage(); + + return ResponseEntity + .status(ex.getStatus()) + .body(ExceptionResponse.builder() + .code(errorType.getCode()) + .msg(errorType.getMsg()) + .build()); + } + +} diff --git a/src/main/java/com/codecrafters/companity/common/adapter/dto/response/ResultCode.java b/src/main/java/com/codecrafters/companity/common/adapter/dto/response/ResultCode.java new file mode 100644 index 0000000..ae37ff6 --- /dev/null +++ b/src/main/java/com/codecrafters/companity/common/adapter/dto/response/ResultCode.java @@ -0,0 +1,14 @@ +package com.codecrafters.companity.common.adapter.dto.response; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor +public enum ResultCode { + UNKNOWN("UNKNOWN", "unchecked exception"), + USER_NOT_FOUND("USER_NOT_FOUND", "user not found exception."); + + private final String code; + private final String msg; +} diff --git a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/common/BaseTimeEntity.java b/src/main/java/com/codecrafters/companity/common/adapter/infrastructure/jpa/BaseTimeEntity.java similarity index 88% rename from src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/common/BaseTimeEntity.java rename to src/main/java/com/codecrafters/companity/common/adapter/infrastructure/jpa/BaseTimeEntity.java index a7a4c8b..5933808 100644 --- a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/common/BaseTimeEntity.java +++ b/src/main/java/com/codecrafters/companity/common/adapter/infrastructure/jpa/BaseTimeEntity.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.infrastructure.jpa.common; +package com.codecrafters.companity.common.adapter.infrastructure.jpa; import jakarta.persistence.EntityListeners; import jakarta.persistence.MappedSuperclass; diff --git a/src/main/java/com/codecrafters/companity/application/out/utility/DateTimeProvider.java b/src/main/java/com/codecrafters/companity/common/application/DateTimeProvider.java similarity index 62% rename from src/main/java/com/codecrafters/companity/application/out/utility/DateTimeProvider.java rename to src/main/java/com/codecrafters/companity/common/application/DateTimeProvider.java index 9cbcec6..cebbf5a 100644 --- a/src/main/java/com/codecrafters/companity/application/out/utility/DateTimeProvider.java +++ b/src/main/java/com/codecrafters/companity/common/application/DateTimeProvider.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.application.out.utility; +package com.codecrafters.companity.common.application; import java.time.LocalDateTime; diff --git a/src/main/java/com/codecrafters/companity/config/mapper/CustomModelMapper.java b/src/main/java/com/codecrafters/companity/config/mapper/CustomModelMapper.java index 7b78e16..df05f1c 100644 --- a/src/main/java/com/codecrafters/companity/config/mapper/CustomModelMapper.java +++ b/src/main/java/com/codecrafters/companity/config/mapper/CustomModelMapper.java @@ -1,9 +1,9 @@ package com.codecrafters.companity.config.mapper; -import com.codecrafters.companity.adapter.post.out.ResponsePost; -import com.codecrafters.companity.domain.enums.City; -import com.codecrafters.companity.domain.enums.Sport; -import com.codecrafters.companity.domain.post.Post; +import com.codecrafters.companity.post.adapter.dto.response.ResponsePost; +import com.codecrafters.companity.post.domain.enums.City; +import com.codecrafters.companity.post.domain.enums.Sport; +import com.codecrafters.companity.post.domain.Post; import org.modelmapper.Converter; import org.modelmapper.ModelMapper; import org.modelmapper.config.Configuration; diff --git a/src/main/java/com/codecrafters/companity/domain/post/OrderType.java b/src/main/java/com/codecrafters/companity/domain/post/OrderType.java deleted file mode 100644 index 2ce3105..0000000 --- a/src/main/java/com/codecrafters/companity/domain/post/OrderType.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.codecrafters.companity.domain.post; - -public enum OrderType { - RecentDate, Favorite -} diff --git a/src/main/java/com/codecrafters/companity/exception/CustomException.java b/src/main/java/com/codecrafters/companity/exception/CustomException.java new file mode 100644 index 0000000..75dd7cf --- /dev/null +++ b/src/main/java/com/codecrafters/companity/exception/CustomException.java @@ -0,0 +1,49 @@ +package com.codecrafters.companity.exception; + +import com.codecrafters.companity.common.adapter.dto.response.ResultCode; +import lombok.Getter; +import org.springframework.http.HttpStatus; + +@Getter +public class CustomException extends RuntimeException{ + private final HttpStatus status; + private final ResultCode resultCode; + private final String message; + + public CustomException(HttpStatus status, ResultCode resultCode, String message) { + this.status = status; + this.resultCode = resultCode; + this.message = message; + } + + public CustomException(HttpStatus status, ResultCode resultCode, Throwable cause) { + this.status = status; + this.resultCode = resultCode; + this.message = cause.getMessage(); + } + + public CustomException(HttpStatus status, CustomException customException) { + this.status = status; + this.resultCode = customException.getResultCode(); + this.message = customException.getMessage(); + } + + public CustomException(HttpStatus status, Throwable cause) { + this.status = status; + this.resultCode = ResultCode.UNKNOWN; + this.message = cause.getMessage(); + } + + public CustomException(Exception exception) { + if (exception.getClass() == CustomException.class) { + CustomException customException = (CustomException) exception; + this.status = customException.getStatus(); + this.resultCode = customException.getResultCode(); + this.message = customException.getMessage(); + } else { + this.status = HttpStatus.BAD_REQUEST; + this.resultCode = ResultCode.UNKNOWN; + this.message = exception.getMessage(); + } + } +} diff --git a/src/main/java/com/codecrafters/companity/adapter/post/PostController.java b/src/main/java/com/codecrafters/companity/post/adapter/PostController.java similarity index 76% rename from src/main/java/com/codecrafters/companity/adapter/post/PostController.java rename to src/main/java/com/codecrafters/companity/post/adapter/PostController.java index e40ebc3..6c80658 100644 --- a/src/main/java/com/codecrafters/companity/adapter/post/PostController.java +++ b/src/main/java/com/codecrafters/companity/post/adapter/PostController.java @@ -1,11 +1,11 @@ -package com.codecrafters.companity.adapter.post; +package com.codecrafters.companity.post.adapter; -import com.codecrafters.companity.application.out.persistence.PostCriteria; -import com.codecrafters.companity.adapter.post.in.RequestPost; -import com.codecrafters.companity.adapter.post.out.ResponsePost; -import com.codecrafters.companity.application.in.usecase.PostUseCase; +import com.codecrafters.companity.post.application.port.out.persistence.PostCriteria; +import com.codecrafters.companity.post.adapter.dto.request.RequestPost; +import com.codecrafters.companity.post.adapter.dto.response.ResponsePost; +import com.codecrafters.companity.post.application.port.in.PostUseCase; import com.codecrafters.companity.config.mapper.CompanityObjectMapper; -import com.codecrafters.companity.domain.post.Post; +import com.codecrafters.companity.post.domain.Post; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; diff --git a/src/main/java/com/codecrafters/companity/adapter/post/in/RequestPost.java b/src/main/java/com/codecrafters/companity/post/adapter/dto/request/RequestPost.java similarity index 65% rename from src/main/java/com/codecrafters/companity/adapter/post/in/RequestPost.java rename to src/main/java/com/codecrafters/companity/post/adapter/dto/request/RequestPost.java index a690b0a..11805b4 100644 --- a/src/main/java/com/codecrafters/companity/adapter/post/in/RequestPost.java +++ b/src/main/java/com/codecrafters/companity/post/adapter/dto/request/RequestPost.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.post.in; +package com.codecrafters.companity.post.adapter.dto.request; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/com/codecrafters/companity/adapter/post/out/ResponsePost.java b/src/main/java/com/codecrafters/companity/post/adapter/dto/response/ResponsePost.java similarity index 87% rename from src/main/java/com/codecrafters/companity/adapter/post/out/ResponsePost.java rename to src/main/java/com/codecrafters/companity/post/adapter/dto/response/ResponsePost.java index 0ba1cdf..d8d3e12 100644 --- a/src/main/java/com/codecrafters/companity/adapter/post/out/ResponsePost.java +++ b/src/main/java/com/codecrafters/companity/post/adapter/dto/response/ResponsePost.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.post.out; +package com.codecrafters.companity.post.adapter.dto.response; import com.codecrafters.companity.user.adapter.ResponseUser; import lombok.Getter; diff --git a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostRepositoryImpl.java b/src/main/java/com/codecrafters/companity/post/adapter/infrastructure/PostRepositoryImpl.java similarity index 75% rename from src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostRepositoryImpl.java rename to src/main/java/com/codecrafters/companity/post/adapter/infrastructure/PostRepositoryImpl.java index 3b0bc9b..91e9eea 100644 --- a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostRepositoryImpl.java +++ b/src/main/java/com/codecrafters/companity/post/adapter/infrastructure/PostRepositoryImpl.java @@ -1,12 +1,14 @@ -package com.codecrafters.companity.adapter.infrastructure.jpa.post; +package com.codecrafters.companity.post.adapter.infrastructure; -import com.codecrafters.companity.application.out.persistence.PostRepository; -import com.codecrafters.companity.application.out.persistence.PostCriteria; +import com.codecrafters.companity.post.adapter.infrastructure.jpa.PostEntity; +import com.codecrafters.companity.post.adapter.infrastructure.jpa.PostJPARepository; +import com.codecrafters.companity.post.application.port.out.persistence.PostRepository; +import com.codecrafters.companity.post.application.port.out.persistence.PostCriteria; import com.codecrafters.companity.config.mapper.CompanityObjectMapper; -import com.codecrafters.companity.domain.enums.City; -import com.codecrafters.companity.domain.enums.Sport; -import com.codecrafters.companity.domain.post.OrderType; -import com.codecrafters.companity.domain.post.Post; +import com.codecrafters.companity.post.domain.enums.City; +import com.codecrafters.companity.post.domain.enums.Sport; +import com.codecrafters.companity.post.domain.enums.OrderType; +import com.codecrafters.companity.post.domain.Post; import com.querydsl.core.types.OrderSpecifier; import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.jpa.impl.JPAQueryFactory; @@ -15,7 +17,7 @@ import java.util.List; -import static com.codecrafters.companity.adapter.infrastructure.jpa.post.QPostEntity.postEntity; +import static com.codecrafters.companity.post.adapter.infrastructure.jpa.QPostEntity.postEntity; @Repository diff --git a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostEntity.java b/src/main/java/com/codecrafters/companity/post/adapter/infrastructure/jpa/PostEntity.java similarity index 68% rename from src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostEntity.java rename to src/main/java/com/codecrafters/companity/post/adapter/infrastructure/jpa/PostEntity.java index 5717e11..0c505bd 100644 --- a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostEntity.java +++ b/src/main/java/com/codecrafters/companity/post/adapter/infrastructure/jpa/PostEntity.java @@ -1,10 +1,10 @@ -package com.codecrafters.companity.adapter.infrastructure.jpa.post; +package com.codecrafters.companity.post.adapter.infrastructure.jpa; -import com.codecrafters.companity.adapter.infrastructure.jpa.comment.CommentEntity; -import com.codecrafters.companity.adapter.infrastructure.jpa.common.BaseTimeEntity; +import com.codecrafters.companity.comment.adapter.infrastructure.jpa.CommentEntity; +import com.codecrafters.companity.common.adapter.infrastructure.jpa.BaseTimeEntity; import com.codecrafters.companity.user.adapter.infrastructure.jpa.UserEntity; -import com.codecrafters.companity.domain.enums.City; -import com.codecrafters.companity.domain.enums.Sport; +import com.codecrafters.companity.post.domain.enums.City; +import com.codecrafters.companity.post.domain.enums.Sport; import jakarta.persistence.*; import lombok.Getter; diff --git a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostJPARepository.java b/src/main/java/com/codecrafters/companity/post/adapter/infrastructure/jpa/PostJPARepository.java similarity index 67% rename from src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostJPARepository.java rename to src/main/java/com/codecrafters/companity/post/adapter/infrastructure/jpa/PostJPARepository.java index 4804c2c..c464677 100644 --- a/src/main/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostJPARepository.java +++ b/src/main/java/com/codecrafters/companity/post/adapter/infrastructure/jpa/PostJPARepository.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.adapter.infrastructure.jpa.post; +package com.codecrafters.companity.post.adapter.infrastructure.jpa; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/com/codecrafters/companity/application/service/post/PostFactory.java b/src/main/java/com/codecrafters/companity/post/application/PostFactory.java similarity index 86% rename from src/main/java/com/codecrafters/companity/application/service/post/PostFactory.java rename to src/main/java/com/codecrafters/companity/post/application/PostFactory.java index 9f9f5d1..36acb11 100644 --- a/src/main/java/com/codecrafters/companity/application/service/post/PostFactory.java +++ b/src/main/java/com/codecrafters/companity/post/application/PostFactory.java @@ -1,7 +1,7 @@ -package com.codecrafters.companity.application.service.post; +package com.codecrafters.companity.post.application; import com.codecrafters.companity.config.mapper.CompanityObjectMapper; -import com.codecrafters.companity.domain.post.Post; +import com.codecrafters.companity.post.domain.Post; import com.codecrafters.companity.user.domain.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/codecrafters/companity/application/service/post/PostService.java b/src/main/java/com/codecrafters/companity/post/application/PostService.java similarity index 76% rename from src/main/java/com/codecrafters/companity/application/service/post/PostService.java rename to src/main/java/com/codecrafters/companity/post/application/PostService.java index 13b0afc..773a6f9 100644 --- a/src/main/java/com/codecrafters/companity/application/service/post/PostService.java +++ b/src/main/java/com/codecrafters/companity/post/application/PostService.java @@ -1,11 +1,11 @@ -package com.codecrafters.companity.application.service.post; +package com.codecrafters.companity.post.application; -import com.codecrafters.companity.application.in.usecase.PostUseCase; -import com.codecrafters.companity.application.out.persistence.PostCriteria; -import com.codecrafters.companity.application.out.utility.DateTimeProvider; -import com.codecrafters.companity.application.out.persistence.PostRepository; +import com.codecrafters.companity.post.application.port.in.PostUseCase; +import com.codecrafters.companity.post.application.port.out.persistence.PostCriteria; +import com.codecrafters.companity.common.application.DateTimeProvider; +import com.codecrafters.companity.post.application.port.out.persistence.PostRepository; import com.codecrafters.companity.user.application.port.out.UserRepository; -import com.codecrafters.companity.domain.post.Post; +import com.codecrafters.companity.post.domain.Post; import com.codecrafters.companity.user.domain.User; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/codecrafters/companity/application/in/usecase/PostUseCase.java b/src/main/java/com/codecrafters/companity/post/application/port/in/PostUseCase.java similarity index 53% rename from src/main/java/com/codecrafters/companity/application/in/usecase/PostUseCase.java rename to src/main/java/com/codecrafters/companity/post/application/port/in/PostUseCase.java index e8b7145..dc07647 100644 --- a/src/main/java/com/codecrafters/companity/application/in/usecase/PostUseCase.java +++ b/src/main/java/com/codecrafters/companity/post/application/port/in/PostUseCase.java @@ -1,7 +1,7 @@ -package com.codecrafters.companity.application.in.usecase; +package com.codecrafters.companity.post.application.port.in; -import com.codecrafters.companity.application.out.persistence.PostCriteria; -import com.codecrafters.companity.domain.post.Post; +import com.codecrafters.companity.post.application.port.out.persistence.PostCriteria; +import com.codecrafters.companity.post.domain.Post; import java.util.List; diff --git a/src/main/java/com/codecrafters/companity/application/out/persistence/PostCriteria.java b/src/main/java/com/codecrafters/companity/post/application/port/out/persistence/PostCriteria.java similarity index 55% rename from src/main/java/com/codecrafters/companity/application/out/persistence/PostCriteria.java rename to src/main/java/com/codecrafters/companity/post/application/port/out/persistence/PostCriteria.java index 52114a6..a5a7b92 100644 --- a/src/main/java/com/codecrafters/companity/application/out/persistence/PostCriteria.java +++ b/src/main/java/com/codecrafters/companity/post/application/port/out/persistence/PostCriteria.java @@ -1,8 +1,8 @@ -package com.codecrafters.companity.application.out.persistence; +package com.codecrafters.companity.post.application.port.out.persistence; -import com.codecrafters.companity.domain.enums.City; -import com.codecrafters.companity.domain.enums.Sport; -import com.codecrafters.companity.domain.post.OrderType; +import com.codecrafters.companity.post.domain.enums.City; +import com.codecrafters.companity.post.domain.enums.Sport; +import com.codecrafters.companity.post.domain.enums.OrderType; import lombok.Builder; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/com/codecrafters/companity/application/out/persistence/PostRepository.java b/src/main/java/com/codecrafters/companity/post/application/port/out/persistence/PostRepository.java similarity index 65% rename from src/main/java/com/codecrafters/companity/application/out/persistence/PostRepository.java rename to src/main/java/com/codecrafters/companity/post/application/port/out/persistence/PostRepository.java index 41d3429..9c8f919 100644 --- a/src/main/java/com/codecrafters/companity/application/out/persistence/PostRepository.java +++ b/src/main/java/com/codecrafters/companity/post/application/port/out/persistence/PostRepository.java @@ -1,6 +1,6 @@ -package com.codecrafters.companity.application.out.persistence; +package com.codecrafters.companity.post.application.port.out.persistence; -import com.codecrafters.companity.domain.post.Post; +import com.codecrafters.companity.post.domain.Post; import java.util.List; diff --git a/src/main/java/com/codecrafters/companity/domain/post/Post.java b/src/main/java/com/codecrafters/companity/post/domain/Post.java similarity index 71% rename from src/main/java/com/codecrafters/companity/domain/post/Post.java rename to src/main/java/com/codecrafters/companity/post/domain/Post.java index d88226d..3559672 100644 --- a/src/main/java/com/codecrafters/companity/domain/post/Post.java +++ b/src/main/java/com/codecrafters/companity/post/domain/Post.java @@ -1,7 +1,8 @@ -package com.codecrafters.companity.domain.post; +package com.codecrafters.companity.post.domain; -import com.codecrafters.companity.domain.enums.City; -import com.codecrafters.companity.domain.enums.Sport; +import com.codecrafters.companity.comment.domain.Comment; +import com.codecrafters.companity.post.domain.enums.City; +import com.codecrafters.companity.post.domain.enums.Sport; import com.codecrafters.companity.user.domain.User; import lombok.*; diff --git a/src/main/java/com/codecrafters/companity/domain/enums/City.java b/src/main/java/com/codecrafters/companity/post/domain/enums/City.java similarity index 92% rename from src/main/java/com/codecrafters/companity/domain/enums/City.java rename to src/main/java/com/codecrafters/companity/post/domain/enums/City.java index 07f874e..60b28f0 100644 --- a/src/main/java/com/codecrafters/companity/domain/enums/City.java +++ b/src/main/java/com/codecrafters/companity/post/domain/enums/City.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.domain.enums; +package com.codecrafters.companity.post.domain.enums; public enum City { Seoul(0 ,"서울시"), diff --git a/src/main/java/com/codecrafters/companity/post/domain/enums/OrderType.java b/src/main/java/com/codecrafters/companity/post/domain/enums/OrderType.java new file mode 100644 index 0000000..861768f --- /dev/null +++ b/src/main/java/com/codecrafters/companity/post/domain/enums/OrderType.java @@ -0,0 +1,5 @@ +package com.codecrafters.companity.post.domain.enums; + +public enum OrderType { + RecentDate, Favorite +} diff --git a/src/main/java/com/codecrafters/companity/domain/enums/Sport.java b/src/main/java/com/codecrafters/companity/post/domain/enums/Sport.java similarity index 88% rename from src/main/java/com/codecrafters/companity/domain/enums/Sport.java rename to src/main/java/com/codecrafters/companity/post/domain/enums/Sport.java index f2ba9f2..ab17af0 100644 --- a/src/main/java/com/codecrafters/companity/domain/enums/Sport.java +++ b/src/main/java/com/codecrafters/companity/post/domain/enums/Sport.java @@ -1,4 +1,4 @@ -package com.codecrafters.companity.domain.enums; +package com.codecrafters.companity.post.domain.enums; public enum Sport { Badminton(0 ,"배드민턴"), diff --git a/src/test/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostRepositoryImplTest.java b/src/test/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostRepositoryImplTest.java index 843ed63..44c7ab0 100644 --- a/src/test/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostRepositoryImplTest.java +++ b/src/test/java/com/codecrafters/companity/adapter/infrastructure/jpa/post/PostRepositoryImplTest.java @@ -1,11 +1,13 @@ package com.codecrafters.companity.adapter.infrastructure.jpa.post; import com.codecrafters.companity.config.mapper.CustomModelMapper; -import com.codecrafters.companity.application.out.persistence.PostCriteria; +import com.codecrafters.companity.post.adapter.infrastructure.jpa.PostJPARepository; +import com.codecrafters.companity.post.adapter.infrastructure.PostRepositoryImpl; +import com.codecrafters.companity.post.application.port.out.persistence.PostCriteria; import com.codecrafters.companity.config.QuerydslConfig; -import com.codecrafters.companity.domain.enums.City; -import com.codecrafters.companity.domain.enums.Sport; -import com.codecrafters.companity.domain.post.OrderType; +import com.codecrafters.companity.post.domain.enums.City; +import com.codecrafters.companity.post.domain.enums.Sport; +import com.codecrafters.companity.post.domain.enums.OrderType; import com.querydsl.jpa.impl.JPAQueryFactory; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/test/java/com/codecrafters/companity/application/service/post/PostServiceTest.java b/src/test/java/com/codecrafters/companity/application/service/post/PostServiceTest.java index 86d1714..7bedd2e 100644 --- a/src/test/java/com/codecrafters/companity/application/service/post/PostServiceTest.java +++ b/src/test/java/com/codecrafters/companity/application/service/post/PostServiceTest.java @@ -2,10 +2,12 @@ import com.codecrafters.companity.mock.repository.PostInMemoryImpl; import com.codecrafters.companity.mock.repository.UserInMemoryImpl; -import com.codecrafters.companity.application.out.persistence.PostRepository; +import com.codecrafters.companity.post.application.port.out.persistence.PostRepository; +import com.codecrafters.companity.post.application.PostFactory; +import com.codecrafters.companity.post.application.PostService; import com.codecrafters.companity.user.application.port.out.UserRepository; import com.codecrafters.companity.config.mapper.CustomModelMapper; -import com.codecrafters.companity.domain.post.Post; +import com.codecrafters.companity.post.domain.Post; import com.codecrafters.companity.user.domain.User; import com.codecrafters.companity.mock.TestDateTimeProvider; import org.junit.jupiter.api.BeforeEach; diff --git a/src/test/java/com/codecrafters/companity/common/adapter/CustomModelMapperTest.java b/src/test/java/com/codecrafters/companity/common/adapter/CustomModelMapperTest.java index 9fe92b8..d379716 100644 --- a/src/test/java/com/codecrafters/companity/common/adapter/CustomModelMapperTest.java +++ b/src/test/java/com/codecrafters/companity/common/adapter/CustomModelMapperTest.java @@ -1,8 +1,8 @@ package com.codecrafters.companity.common.adapter; -import com.codecrafters.companity.adapter.infrastructure.jpa.post.PostEntity; +import com.codecrafters.companity.post.adapter.infrastructure.jpa.PostEntity; import com.codecrafters.companity.config.mapper.CustomModelMapper; -import com.codecrafters.companity.domain.post.Post; +import com.codecrafters.companity.post.domain.Post; import org.junit.jupiter.api.Test; import java.util.ArrayList; diff --git a/src/test/java/com/codecrafters/companity/domain/post/PostFactoryTest.java b/src/test/java/com/codecrafters/companity/domain/post/PostFactoryTest.java index 1a1959a..d4016a0 100644 --- a/src/test/java/com/codecrafters/companity/domain/post/PostFactoryTest.java +++ b/src/test/java/com/codecrafters/companity/domain/post/PostFactoryTest.java @@ -1,7 +1,8 @@ package com.codecrafters.companity.domain.post; -import com.codecrafters.companity.application.service.post.PostFactory; +import com.codecrafters.companity.post.application.PostFactory; import com.codecrafters.companity.config.mapper.CustomModelMapper; +import com.codecrafters.companity.post.domain.Post; import com.codecrafters.companity.user.domain.User; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/codecrafters/companity/mock/TestDateTimeProvider.java b/src/test/java/com/codecrafters/companity/mock/TestDateTimeProvider.java index e4b13ec..b069796 100644 --- a/src/test/java/com/codecrafters/companity/mock/TestDateTimeProvider.java +++ b/src/test/java/com/codecrafters/companity/mock/TestDateTimeProvider.java @@ -1,6 +1,6 @@ package com.codecrafters.companity.mock; -import com.codecrafters.companity.application.out.utility.DateTimeProvider; +import com.codecrafters.companity.common.application.DateTimeProvider; import java.time.LocalDateTime; public class TestDateTimeProvider implements DateTimeProvider { diff --git a/src/test/java/com/codecrafters/companity/mock/repository/PostInMemoryImpl.java b/src/test/java/com/codecrafters/companity/mock/repository/PostInMemoryImpl.java index 7015e58..9684053 100644 --- a/src/test/java/com/codecrafters/companity/mock/repository/PostInMemoryImpl.java +++ b/src/test/java/com/codecrafters/companity/mock/repository/PostInMemoryImpl.java @@ -1,8 +1,8 @@ package com.codecrafters.companity.mock.repository; -import com.codecrafters.companity.application.out.persistence.PostRepository; -import com.codecrafters.companity.application.out.persistence.PostCriteria; -import com.codecrafters.companity.domain.post.Post; +import com.codecrafters.companity.post.application.port.out.persistence.PostRepository; +import com.codecrafters.companity.post.application.port.out.persistence.PostCriteria; +import com.codecrafters.companity.post.domain.Post; import java.util.List; import java.util.Map; diff --git a/src/test/java/com/codecrafters/companity/static_reference/PostStatic.java b/src/test/java/com/codecrafters/companity/static_reference/PostStatic.java index 6d6ec69..ab179f3 100644 --- a/src/test/java/com/codecrafters/companity/static_reference/PostStatic.java +++ b/src/test/java/com/codecrafters/companity/static_reference/PostStatic.java @@ -1,7 +1,7 @@ package com.codecrafters.companity.static_reference; -import com.codecrafters.companity.domain.enums.City; -import com.codecrafters.companity.domain.enums.Sport; +import com.codecrafters.companity.post.domain.enums.City; +import com.codecrafters.companity.post.domain.enums.Sport; public class PostStatic { public static final String TITLE = "Test Title";