diff --git a/refrigerator/.idea/modules/refrigerator.main.iml b/refrigerator/.idea/modules/refrigerator.main.iml
index afc1871..9f498db 100644
--- a/refrigerator/.idea/modules/refrigerator.main.iml
+++ b/refrigerator/.idea/modules/refrigerator.main.iml
@@ -4,5 +4,8 @@
+
+
+
\ No newline at end of file
diff --git a/refrigerator/build.gradle b/refrigerator/build.gradle
index 0e3a358..383be4b 100644
--- a/refrigerator/build.gradle
+++ b/refrigerator/build.gradle
@@ -42,7 +42,6 @@ dependencies {
implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
-
tasks.named('test') {
useJUnitPlatform()
}
diff --git a/refrigerator/src/main/java/moja/refrigerator/aggregate/recipe/Recipe.java b/refrigerator/src/main/java/moja/refrigerator/aggregate/recipe/Recipe.java
index fdac2ea..f76ffbd 100644
--- a/refrigerator/src/main/java/moja/refrigerator/aggregate/recipe/Recipe.java
+++ b/refrigerator/src/main/java/moja/refrigerator/aggregate/recipe/Recipe.java
@@ -8,6 +8,7 @@
import org.hibernate.annotations.UpdateTimestamp;
import java.time.LocalDateTime;
+import java.util.List;
@Data
@Entity
@@ -53,4 +54,7 @@ public class Recipe {
@JoinColumn(name = "recipe_category")
@ManyToOne
private RecipeCategory recipeCategory;
+
+ @OneToMany(mappedBy = "recipe")
+ private List recipeIngredients;
}
\ No newline at end of file
diff --git a/refrigerator/src/main/java/moja/refrigerator/controller/recipe/RecipeController.java b/refrigerator/src/main/java/moja/refrigerator/controller/recipe/RecipeController.java
index 3bb64af..2ebfdff 100644
--- a/refrigerator/src/main/java/moja/refrigerator/controller/recipe/RecipeController.java
+++ b/refrigerator/src/main/java/moja/refrigerator/controller/recipe/RecipeController.java
@@ -3,6 +3,7 @@
import moja.refrigerator.aggregate.recipe.Recipe;
import moja.refrigerator.dto.recipe.request.RecipeCreateRequest;
import moja.refrigerator.dto.recipe.request.RecipeUpdateRequest;
+import moja.refrigerator.dto.recipe.response.RecipeDetailResponse;
import moja.refrigerator.dto.recipe.response.RecipeResponse;
import moja.refrigerator.service.recipe.RecipeService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +31,9 @@ public List getAllRecipes(){
return recipeService.getAllRecipes();
}
+ @GetMapping("/{id}")
+ public RecipeDetailResponse getRecipe(@PathVariable long id){ return recipeService.getRecipe(id);}
+
@DeleteMapping
public void deleteRecipe(@RequestParam long recipePk){
recipeService.deleteRecipe(recipePk);
diff --git a/refrigerator/src/main/java/moja/refrigerator/dto/recipe/response/RecipeDetailResponse.java b/refrigerator/src/main/java/moja/refrigerator/dto/recipe/response/RecipeDetailResponse.java
new file mode 100644
index 0000000..0fcf203
--- /dev/null
+++ b/refrigerator/src/main/java/moja/refrigerator/dto/recipe/response/RecipeDetailResponse.java
@@ -0,0 +1,25 @@
+package moja.refrigerator.dto.recipe.response;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+import lombok.Data;
+import moja.refrigerator.dto.ingredient.response.IngredientResponse;
+
+@Data
+public class RecipeDetailResponse {
+ private long recipePk;
+ private String recipeName;
+ private int recipeCookingTime;
+ private int recipeDifficulty;
+ private long recipeViews;
+
+ private LocalDateTime recipeCreateTime;;
+ private LocalDateTime recipeUpdateTime;
+
+ private String recipeSource;
+ private String userPk;
+ private String recipeCategory;
+
+ private List ingredients;
+}
diff --git a/refrigerator/src/main/java/moja/refrigerator/service/recipe/RecipeService.java b/refrigerator/src/main/java/moja/refrigerator/service/recipe/RecipeService.java
index 4d6c154..3b04e43 100644
--- a/refrigerator/src/main/java/moja/refrigerator/service/recipe/RecipeService.java
+++ b/refrigerator/src/main/java/moja/refrigerator/service/recipe/RecipeService.java
@@ -3,6 +3,7 @@
import moja.refrigerator.aggregate.recipe.Recipe;
import moja.refrigerator.dto.recipe.request.RecipeCreateRequest;
import moja.refrigerator.dto.recipe.request.RecipeUpdateRequest;
+import moja.refrigerator.dto.recipe.response.RecipeDetailResponse;
import moja.refrigerator.dto.recipe.response.RecipeResponse;
import moja.refrigerator.repository.recipe.RecipeRepository;
import org.springframework.stereotype.Service;
@@ -12,6 +13,7 @@
public interface RecipeService {
void createRecipe(RecipeCreateRequest request);
List getAllRecipes();
+ RecipeDetailResponse getRecipe(long id);
void deleteRecipe(long recipePk);
void updateRecipe(RecipeUpdateRequest request);
}
diff --git a/refrigerator/src/main/java/moja/refrigerator/service/recipe/RecipeServiceImpl.java b/refrigerator/src/main/java/moja/refrigerator/service/recipe/RecipeServiceImpl.java
index b857df7..5c5ceb0 100644
--- a/refrigerator/src/main/java/moja/refrigerator/service/recipe/RecipeServiceImpl.java
+++ b/refrigerator/src/main/java/moja/refrigerator/service/recipe/RecipeServiceImpl.java
@@ -4,8 +4,10 @@
import moja.refrigerator.aggregate.recipe.Recipe;
import moja.refrigerator.aggregate.recipe.RecipeCategory;
import moja.refrigerator.aggregate.recipe.RecipeSource;
+import moja.refrigerator.dto.ingredient.response.IngredientResponse;
import moja.refrigerator.dto.recipe.request.RecipeCreateRequest;
import moja.refrigerator.dto.recipe.request.RecipeUpdateRequest;
+import moja.refrigerator.dto.recipe.response.RecipeDetailResponse;
import moja.refrigerator.dto.recipe.response.RecipeResponse;
import moja.refrigerator.repository.recipe.RecipeCategoryRepositoy;
import moja.refrigerator.repository.recipe.RecipeRepository;
@@ -73,9 +75,15 @@ public List getAllRecipes(){
return recipeRepository.findAll().stream()
.map(recipe -> mapper.map(recipe, RecipeResponse.class))
.collect(Collectors.toList());
- };
+ }
- @Override
+ public RecipeDetailResponse getRecipe(long id){
+ Recipe recipe = recipeRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("recipe not found"));
+ RecipeDetailResponse response = mapper.map(recipe,RecipeDetailResponse.class);
+ return response;
+ }
+
+ @Override
public void deleteRecipe(long recipePk) {
Recipe recipe = recipeRepository.findByRecipePk(recipePk)
.orElseThrow(IllegalArgumentException::new);