From fc1551a025a9a1217e0b200fbcc5cd1597e37d12 Mon Sep 17 00:00:00 2001 From: yunjaeeun Date: Wed, 11 Dec 2024 14:37:55 +0900 Subject: [PATCH 1/3] =?UTF-8?q?Feat:=20=EC=9E=AC=EB=A3=8C=20=EC=A6=90?= =?UTF-8?q?=EA=B2=A8=EC=B0=BE=EA=B8=B0=20=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. controller, repository, dto 생성 2. service 작성중 Related to: #03 --- .../aggregate/ingredient/IngredientBookmark.java | 4 ++-- .../ingredient/IngredientController.java | 14 ++++++++++++++ .../service/ingredient/IngredientService.java | 4 ++++ .../service/ingredient/IngredientServiceImpl.java | 12 ++++++++++++ 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/refrigerator/src/main/java/moja/refrigerator/aggregate/ingredient/IngredientBookmark.java b/refrigerator/src/main/java/moja/refrigerator/aggregate/ingredient/IngredientBookmark.java index 5f7a32b..5140c88 100644 --- a/refrigerator/src/main/java/moja/refrigerator/aggregate/ingredient/IngredientBookmark.java +++ b/refrigerator/src/main/java/moja/refrigerator/aggregate/ingredient/IngredientBookmark.java @@ -15,10 +15,10 @@ public class IngredientBookmark { private long ingredientBookmarkPk; @ManyToOne - @JoinColumn(name = "user") + @JoinColumn(name = "user_pk") private User user; @ManyToOne - @JoinColumn(name = "ingredient_management") + @JoinColumn(name = "ingredient_management_pk") private IngredientManagement ingredientManagement; } diff --git a/refrigerator/src/main/java/moja/refrigerator/controller/ingredient/IngredientController.java b/refrigerator/src/main/java/moja/refrigerator/controller/ingredient/IngredientController.java index fabffb3..2164b70 100644 --- a/refrigerator/src/main/java/moja/refrigerator/controller/ingredient/IngredientController.java +++ b/refrigerator/src/main/java/moja/refrigerator/controller/ingredient/IngredientController.java @@ -1,8 +1,12 @@ package moja.refrigerator.controller.ingredient; import moja.refrigerator.dto.ingredient.request.IngredientCreateRequest; +import moja.refrigerator.dto.ingredient.request.RequestRegistIngredientBookmark; +import moja.refrigerator.dto.ingredient.response.ResponseRegistIngredientBookmark; import moja.refrigerator.service.ingredient.IngredientService; import org.springframework.beans.factory.annotation.Autowired; +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; @@ -22,4 +26,14 @@ public IngredientController(IngredientService ingredientService) { public void createIngredient(@RequestBody IngredientCreateRequest request) { ingredientService.createIngredient(request); } + + @PostMapping("/bookmark/regist") + public ResponseEntity createIngredientBookmark( + @RequestBody RequestRegistIngredientBookmark requestBookmark + ) { + ResponseRegistIngredientBookmark responseBookmark = + ingredientService.createIngredientBookmark(requestBookmark); + + return ResponseEntity.status(HttpStatus.CREATED).body(responseBookmark); + } } diff --git a/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientService.java b/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientService.java index 419ec56..43b5479 100644 --- a/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientService.java +++ b/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientService.java @@ -1,7 +1,11 @@ package moja.refrigerator.service.ingredient; import moja.refrigerator.dto.ingredient.request.IngredientCreateRequest; +import moja.refrigerator.dto.ingredient.request.RequestRegistIngredientBookmark; +import moja.refrigerator.dto.ingredient.response.ResponseRegistIngredientBookmark; public interface IngredientService { void createIngredient(IngredientCreateRequest request); + + ResponseRegistIngredientBookmark createIngredientBookmark(RequestRegistIngredientBookmark requestBookmark); } diff --git a/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientServiceImpl.java b/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientServiceImpl.java index db6d42a..75eb3d7 100644 --- a/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientServiceImpl.java +++ b/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientServiceImpl.java @@ -5,6 +5,9 @@ //import moja.refrigerator.aggregate.ingredient.IngredientStorage; import moja.refrigerator.dto.ingredient.request.IngredientCreateRequest; //import moja.refrigerator.repository.ingredient.IngredientCategoryRepository; +import moja.refrigerator.dto.ingredient.request.RequestRegistIngredientBookmark; +import moja.refrigerator.dto.ingredient.response.ResponseRegistIngredientBookmark; +import moja.refrigerator.repository.ingredient.IngredientBookmarkRepository; import moja.refrigerator.repository.ingredient.IngredientManagementRepository; //import moja.refrigerator.repository.ingredient.IngredientStorageRepository; import org.modelmapper.ModelMapper; @@ -18,16 +21,19 @@ public class IngredientServiceImpl implements IngredientService{ private IngredientManagementRepository ingredientManagementRepository; // private IngredientStorageRepository ingredientStorageRepository; // private IngredientCategoryRepository ingredientCategoryRepository; + private IngredientBookmarkRepository ingredientBookmarkRepository; private ModelMapper mapper; @Autowired public IngredientServiceImpl(IngredientManagementRepository ingredientManagementRepository, // IngredientStorageRepository ingredientStorageRepository, // IngredientCategoryRepository ingredientCategoryRepository, + IngredientBookmarkRepository ingredientBookmarkRepository, ModelMapper mapper) { this.ingredientManagementRepository = ingredientManagementRepository; // this.ingredientStorageRepository = ingredientStorageRepository; // this.ingredientCategoryRepository = ingredientCategoryRepository; + this.ingredientBookmarkRepository = ingredientBookmarkRepository; this.mapper = mapper; } @@ -47,4 +53,10 @@ public void createIngredient(IngredientCreateRequest request) { ingredientManagementRepository.save(ingredient); } + + @Override + public ResponseRegistIngredientBookmark createIngredientBookmark(RequestRegistIngredientBookmark requestBookmark) { + + return new ResponseRegistIngredientBookmark(); + } } From d0ece5333b3eb2c8555c32668498b9a38358ea93 Mon Sep 17 00:00:00 2001 From: yunjaeeun Date: Wed, 11 Dec 2024 14:38:01 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Feat:=20=EC=9E=AC=EB=A3=8C=20=EC=A6=90?= =?UTF-8?q?=EA=B2=A8=EC=B0=BE=EA=B8=B0=20=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. controller, repository, dto 생성 2. service 작성중 Related to: #03 --- .../request/RequestRegistIngredientBookmark.java | 9 +++++++++ .../response/ResponseRegistIngredientBookmark.java | 7 +++++++ .../ingredient/IngredientBookmarkRepository.java | 7 +++++++ 3 files changed, 23 insertions(+) create mode 100644 refrigerator/src/main/java/moja/refrigerator/dto/ingredient/request/RequestRegistIngredientBookmark.java create mode 100644 refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/ResponseRegistIngredientBookmark.java create mode 100644 refrigerator/src/main/java/moja/refrigerator/repository/ingredient/IngredientBookmarkRepository.java diff --git a/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/request/RequestRegistIngredientBookmark.java b/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/request/RequestRegistIngredientBookmark.java new file mode 100644 index 0000000..a7690f8 --- /dev/null +++ b/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/request/RequestRegistIngredientBookmark.java @@ -0,0 +1,9 @@ +package moja.refrigerator.dto.ingredient.request; + +import lombok.Data; + +@Data +public class RequestRegistIngredientBookmark { + private int userPk; + private int ingredientPk; +} diff --git a/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/ResponseRegistIngredientBookmark.java b/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/ResponseRegistIngredientBookmark.java new file mode 100644 index 0000000..cfa2d4d --- /dev/null +++ b/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/ResponseRegistIngredientBookmark.java @@ -0,0 +1,7 @@ +package moja.refrigerator.dto.ingredient.response; + +import lombok.Data; + +@Data +public class ResponseRegistIngredientBookmark { +} diff --git a/refrigerator/src/main/java/moja/refrigerator/repository/ingredient/IngredientBookmarkRepository.java b/refrigerator/src/main/java/moja/refrigerator/repository/ingredient/IngredientBookmarkRepository.java new file mode 100644 index 0000000..90c2e54 --- /dev/null +++ b/refrigerator/src/main/java/moja/refrigerator/repository/ingredient/IngredientBookmarkRepository.java @@ -0,0 +1,7 @@ +package moja.refrigerator.repository.ingredient; + +import moja.refrigerator.aggregate.ingredient.IngredientBookmark; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface IngredientBookmarkRepository extends JpaRepository { +} From d125471b449cfe5c4d52ea947e9af6c424b330fe Mon Sep 17 00:00:00 2001 From: yunjaeeun Date: Thu, 12 Dec 2024 15:58:54 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Feat:=20=EC=9E=AC=EB=A3=8C=20=EC=A6=90?= =?UTF-8?q?=EA=B2=A8=EC=B0=BE=EA=B8=B0=20=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 재료 즐겨찾기 등록 Resolves: #03 --- .../RequestRegistIngredientBookmark.java | 4 +-- .../ResponseRegistIngredientBookmark.java | 6 +++++ .../repository/user/UserRepository.java | 7 ++++++ .../ingredient/IngredientServiceImpl.java | 25 ++++++++++++++++++- 4 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 refrigerator/src/main/java/moja/refrigerator/repository/user/UserRepository.java diff --git a/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/request/RequestRegistIngredientBookmark.java b/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/request/RequestRegistIngredientBookmark.java index a7690f8..33c0ccf 100644 --- a/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/request/RequestRegistIngredientBookmark.java +++ b/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/request/RequestRegistIngredientBookmark.java @@ -4,6 +4,6 @@ @Data public class RequestRegistIngredientBookmark { - private int userPk; - private int ingredientPk; + private long userPk; + private long ingredientPk; } diff --git a/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/ResponseRegistIngredientBookmark.java b/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/ResponseRegistIngredientBookmark.java index cfa2d4d..41c5dab 100644 --- a/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/ResponseRegistIngredientBookmark.java +++ b/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/ResponseRegistIngredientBookmark.java @@ -1,7 +1,13 @@ package moja.refrigerator.dto.ingredient.response; import lombok.Data; +import moja.refrigerator.aggregate.ingredient.IngredientBookmark; +import moja.refrigerator.aggregate.ingredient.IngredientManagement; +import moja.refrigerator.aggregate.user.User; @Data public class ResponseRegistIngredientBookmark { + private long ingredientBookmarkPk; + private User user; + private IngredientManagement ingredientManagement; } diff --git a/refrigerator/src/main/java/moja/refrigerator/repository/user/UserRepository.java b/refrigerator/src/main/java/moja/refrigerator/repository/user/UserRepository.java new file mode 100644 index 0000000..89c3e97 --- /dev/null +++ b/refrigerator/src/main/java/moja/refrigerator/repository/user/UserRepository.java @@ -0,0 +1,7 @@ +package moja.refrigerator.repository.user; + +import moja.refrigerator.aggregate.user.User; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface UserRepository extends JpaRepository { +} diff --git a/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientServiceImpl.java b/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientServiceImpl.java index 75eb3d7..4a3983c 100644 --- a/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientServiceImpl.java +++ b/refrigerator/src/main/java/moja/refrigerator/service/ingredient/IngredientServiceImpl.java @@ -1,8 +1,11 @@ package moja.refrigerator.service.ingredient; //import moja.refrigerator.aggregate.ingredient.IngredientCategory; +import jakarta.persistence.EntityNotFoundException; +import moja.refrigerator.aggregate.ingredient.IngredientBookmark; import moja.refrigerator.aggregate.ingredient.IngredientManagement; //import moja.refrigerator.aggregate.ingredient.IngredientStorage; +import moja.refrigerator.aggregate.user.User; import moja.refrigerator.dto.ingredient.request.IngredientCreateRequest; //import moja.refrigerator.repository.ingredient.IngredientCategoryRepository; import moja.refrigerator.dto.ingredient.request.RequestRegistIngredientBookmark; @@ -10,7 +13,9 @@ import moja.refrigerator.repository.ingredient.IngredientBookmarkRepository; import moja.refrigerator.repository.ingredient.IngredientManagementRepository; //import moja.refrigerator.repository.ingredient.IngredientStorageRepository; +import moja.refrigerator.repository.user.UserRepository; import org.modelmapper.ModelMapper; +import org.modelmapper.convention.MatchingStrategies; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -22,6 +27,7 @@ public class IngredientServiceImpl implements IngredientService{ // private IngredientStorageRepository ingredientStorageRepository; // private IngredientCategoryRepository ingredientCategoryRepository; private IngredientBookmarkRepository ingredientBookmarkRepository; + private UserRepository userRepository; private ModelMapper mapper; @Autowired @@ -29,11 +35,13 @@ public IngredientServiceImpl(IngredientManagementRepository ingredientManagement // IngredientStorageRepository ingredientStorageRepository, // IngredientCategoryRepository ingredientCategoryRepository, IngredientBookmarkRepository ingredientBookmarkRepository, + UserRepository userRepository, ModelMapper mapper) { this.ingredientManagementRepository = ingredientManagementRepository; // this.ingredientStorageRepository = ingredientStorageRepository; // this.ingredientCategoryRepository = ingredientCategoryRepository; this.ingredientBookmarkRepository = ingredientBookmarkRepository; + this.userRepository = userRepository; this.mapper = mapper; } @@ -56,7 +64,22 @@ public void createIngredient(IngredientCreateRequest request) { @Override public ResponseRegistIngredientBookmark createIngredientBookmark(RequestRegistIngredientBookmark requestBookmark) { + User user = userRepository.findById(requestBookmark.getUserPk()) + .orElseThrow(() -> new EntityNotFoundException("회원을 찾을 수 없습니다.")); - return new ResponseRegistIngredientBookmark(); + IngredientManagement ingredientManagement = ingredientManagementRepository + .findById(requestBookmark.getIngredientPk()) + .orElseThrow(() -> new EntityNotFoundException("재료를 찾을 수 없습니다.")); + + IngredientBookmark ingredientBookmark = new IngredientBookmark(); + + ingredientBookmark.setUser(user); + ingredientBookmark.setIngredientManagement(ingredientManagement); + + ingredientBookmarkRepository.save(ingredientBookmark); + + mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); + + return mapper.map(ingredientBookmark, ResponseRegistIngredientBookmark.class); } }