From c778f4b1031d56674b2b946498313e90c9ce548d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=99=8D=EB=B2=94?= Date: Wed, 11 Dec 2024 16:07:32 +0900 Subject: [PATCH] =?UTF-8?q?#1=20=EC=9E=AC=EB=A3=8C=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ingredient/IngredientController.java | 15 ++++++++---- .../response/IngredientResponse.java | 24 +++++++++++++++++++ .../service/ingredient/IngredientService.java | 6 ++++- .../ingredient/IngredientServiceImpl.java | 16 +++++++++++++ 4 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/IngredientResponse.java 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..0e821ac 100644 --- a/refrigerator/src/main/java/moja/refrigerator/controller/ingredient/IngredientController.java +++ b/refrigerator/src/main/java/moja/refrigerator/controller/ingredient/IngredientController.java @@ -1,12 +1,12 @@ package moja.refrigerator.controller.ingredient; import moja.refrigerator.dto.ingredient.request.IngredientCreateRequest; +import moja.refrigerator.dto.ingredient.response.IngredientResponse; import moja.refrigerator.service.ingredient.IngredientService; import org.springframework.beans.factory.annotation.Autowired; -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.List; @RestController @RequestMapping("/ingredient") @@ -18,8 +18,15 @@ public IngredientController(IngredientService ingredientService) { this.ingredientService = ingredientService; } + // 재료 등록 @PostMapping public void createIngredient(@RequestBody IngredientCreateRequest request) { ingredientService.createIngredient(request); } + + // 재료 조회 + @GetMapping + public List getIngredient() { + return ingredientService.getIngredient(); + } } diff --git a/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/IngredientResponse.java b/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/IngredientResponse.java new file mode 100644 index 0000000..a98038f --- /dev/null +++ b/refrigerator/src/main/java/moja/refrigerator/dto/ingredient/response/IngredientResponse.java @@ -0,0 +1,24 @@ +package moja.refrigerator.dto.ingredient.response; + +import lombok.Data; + +@Data +public class IngredientResponse { + private long ingredientManagementPk; + private String ingredientName; + private String expirationDate; + private String registrationDate; + private int seasonDate; + + // ModelMapper를 위한 기본 생성자 생성 + public IngredientResponse() {} + + // 생성자 + public IngredientResponse(long ingredientManagementPk, String ingredientName, String expirationDate, String registrationDate, int seasonDate) { + this.ingredientManagementPk = ingredientManagementPk; + this.ingredientName = ingredientName; + this.expirationDate = expirationDate; + this.registrationDate = registrationDate; + this.seasonDate = seasonDate; + } +} 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..45d10c0 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.response.IngredientResponse; + +import java.util.List; public interface IngredientService { - void createIngredient(IngredientCreateRequest request); + void createIngredient(IngredientCreateRequest request); // 재료 등록 메서드 + List getIngredient(); // 재료 조회 메서드 } 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..92465ca 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,7 @@ //import moja.refrigerator.aggregate.ingredient.IngredientStorage; import moja.refrigerator.dto.ingredient.request.IngredientCreateRequest; //import moja.refrigerator.repository.ingredient.IngredientCategoryRepository; +import moja.refrigerator.dto.ingredient.response.IngredientResponse; import moja.refrigerator.repository.ingredient.IngredientManagementRepository; //import moja.refrigerator.repository.ingredient.IngredientStorageRepository; import org.modelmapper.ModelMapper; @@ -12,6 +13,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; +import java.util.stream.Collectors; + @Service public class IngredientServiceImpl implements IngredientService{ @@ -45,6 +49,18 @@ public void createIngredient(IngredientCreateRequest request) { // ingredient.setIngredientCategory(category); // ingredient.setIngredientStorage(storage); + // 재료를 JpaRepository의 save() 메소드로 DB에 저장 ! ingredientManagementRepository.save(ingredient); } + + @Override + @Transactional(readOnly = true) + public List getIngredient() { + List ingredients = ingredientManagementRepository.findAll(); + + return ingredients.stream() + .map(ingredient -> mapper.map(ingredient, IngredientResponse.class)) + .collect(Collectors.toList()); + } + }