From deec182891d20e5c7b96aa5cc6d1be90568e3b9b Mon Sep 17 00:00:00 2001 From: hyun Date: Sat, 3 Aug 2024 15:14:53 +0900 Subject: [PATCH] :recycle: generate image URL --- .../net/pengcook/recipe/service/RecipeService.java | 9 ++++++--- .../pengcook/recipe/service/RecipeServiceTest.java | 11 ++--------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/backend/src/main/java/net/pengcook/recipe/service/RecipeService.java b/backend/src/main/java/net/pengcook/recipe/service/RecipeService.java index 8b736f44..2c092a84 100644 --- a/backend/src/main/java/net/pengcook/recipe/service/RecipeService.java +++ b/backend/src/main/java/net/pengcook/recipe/service/RecipeService.java @@ -10,6 +10,7 @@ import net.pengcook.category.dto.RecipeOfCategoryRequest; import net.pengcook.category.repository.CategoryRecipeRepository; import net.pengcook.category.service.CategoryService; +import net.pengcook.image.service.S3ClientService; import net.pengcook.ingredient.service.IngredientService; import net.pengcook.recipe.domain.Recipe; import net.pengcook.recipe.domain.RecipeStep; @@ -44,6 +45,7 @@ public class RecipeService { private final CategoryService categoryService; private final IngredientService ingredientService; + private final S3ClientService s3ClientService; public List readRecipes(int pageNumber, int pageSize) { Pageable pageable = PageRequest.of(pageNumber, pageSize); @@ -55,11 +57,12 @@ public List readRecipes(int pageNumber, int pageSize) { public RecipeResponse createRecipe(UserInfo userInfo, RecipeRequest recipeRequest) { User author = userRepository.findById(userInfo.getId()).orElseThrow(); + String thumbnailUrl = s3ClientService.getImageUrl(recipeRequest.thumbnail()).url(); Recipe recipe = new Recipe( recipeRequest.title(), author, LocalTime.parse(recipeRequest.cookingTime()), - recipeRequest.thumbnail(), + thumbnailUrl, recipeRequest.difficulty(), recipeRequest.description() ); @@ -86,10 +89,10 @@ public RecipeStepResponse readRecipeStep(long recipeId, long sequence) { public RecipeStepResponse createRecipeStep(long recipeId, RecipeStepRequest recipeStepRequest) { Recipe recipe = recipeRepository.findById(recipeId) .orElseThrow(() -> new NotFoundException("해당되는 레시피가 없습니다.")); - + String imageUrl = s3ClientService.getImageUrl(recipeStepRequest.image()).url(); RecipeStep recipeStep = new RecipeStep( recipe, - recipeStepRequest.image(), + imageUrl, recipeStepRequest.description(), recipeStepRequest.sequence(), LocalTime.parse(recipeStepRequest.cookingTime()) diff --git a/backend/src/test/java/net/pengcook/recipe/service/RecipeServiceTest.java b/backend/src/test/java/net/pengcook/recipe/service/RecipeServiceTest.java index 438e3b4b..77e22313 100644 --- a/backend/src/test/java/net/pengcook/recipe/service/RecipeServiceTest.java +++ b/backend/src/test/java/net/pengcook/recipe/service/RecipeServiceTest.java @@ -8,12 +8,8 @@ import java.util.stream.Stream; import net.pengcook.authentication.domain.UserInfo; import net.pengcook.category.dto.RecipeOfCategoryRequest; -import net.pengcook.category.service.CategoryService; import net.pengcook.ingredient.domain.Requirement; import net.pengcook.ingredient.dto.IngredientCreateRequest; -import net.pengcook.ingredient.service.IngredientRecipeService; -import net.pengcook.ingredient.service.IngredientService; -import net.pengcook.ingredient.service.IngredientSubstitutionService; import net.pengcook.recipe.dto.MainRecipeResponse; import net.pengcook.recipe.dto.RecipeRequest; import net.pengcook.recipe.dto.RecipeResponse; @@ -26,13 +22,10 @@ import org.junit.jupiter.params.provider.CsvSource; import org.junit.jupiter.params.provider.MethodSource; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; -import org.springframework.context.annotation.Import; +import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.jdbc.Sql; -@DataJpaTest -@Import({RecipeService.class, CategoryService.class, IngredientService.class, IngredientRecipeService.class, - IngredientSubstitutionService.class}) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @Sql(value = "/data/recipe.sql") class RecipeServiceTest {