Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions refrigerator/.idea/modules/refrigerator.main.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion refrigerator/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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()
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.hibernate.annotations.UpdateTimestamp;

import java.time.LocalDateTime;
import java.util.List;

@Data
@Entity
Expand Down Expand Up @@ -53,4 +54,7 @@ public class Recipe {
@JoinColumn(name = "recipe_category")
@ManyToOne
private RecipeCategory recipeCategory;

@OneToMany(mappedBy = "recipe")
private List<RecipeIngredient> recipeIngredients;
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -30,6 +31,9 @@ public List<RecipeResponse> 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);
Expand Down
Original file line number Diff line number Diff line change
@@ -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<IngredientResponse> ingredients;
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -12,6 +13,7 @@
public interface RecipeService {
void createRecipe(RecipeCreateRequest request);
List<RecipeResponse> getAllRecipes();
RecipeDetailResponse getRecipe(long id);
void deleteRecipe(long recipePk);
void updateRecipe(RecipeUpdateRequest request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -73,9 +75,15 @@ public List<RecipeResponse> 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);
Expand Down