From cad241c0014d798149584e141eb6851876d4d89a Mon Sep 17 00:00:00 2001 From: Emiel Date: Thu, 11 Dec 2025 14:18:35 +0100 Subject: [PATCH 1/2] Added image support for recipes --- app/data/images/spaghett.jpg | Bin 0 -> 112333 bytes .../recipe_book/data/model/RecipeEntity.java | 4 + .../repository/RecipeRepository.java | 2 + .../recipe_book/service/RecipeService.java | 6 ++ .../recipe_book/service/model/Recipe.java | 1 + .../service/model/RecipeSummary.java | 1 + .../recipe_book/web/RecipeResource.java | 24 ++++++ .../recipe_book/web/model/RecipeDto.java | 1 + .../web/model/RecipeSummaryDto.java | 1 + .../web/model/SaveRecipeRequestDto.java | 1 + .../db/dev-data/V2.2__insert_recipes.sql | 26 +++--- .../migration/V1.2__create_recipe_table.sql | 1 + docker-compose.yml | 5 +- ui/src/api/httpClient.ts | 2 +- ui/src/components/RecipeSummary.vue | 74 ++++++++++-------- ui/src/components/RecipeSummaryList.vue | 4 +- ui/src/models/domain/RecipeSummary.ts | 1 + 17 files changed, 105 insertions(+), 49 deletions(-) create mode 100644 app/data/images/spaghett.jpg diff --git a/app/data/images/spaghett.jpg b/app/data/images/spaghett.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ff00875b9486e5eacdae486b62d51006d291e2b4 GIT binary patch literal 112333 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

k=uXe|hXj3P%R{{$#;jui=fHv2~M8yIgNJ_%b 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 literal 0 HcmV?d00001 diff --git a/app/src/main/java/dev/blaauwendraad/recipe_book/data/model/RecipeEntity.java b/app/src/main/java/dev/blaauwendraad/recipe_book/data/model/RecipeEntity.java index 4671147..159d952 100644 --- a/app/src/main/java/dev/blaauwendraad/recipe_book/data/model/RecipeEntity.java +++ b/app/src/main/java/dev/blaauwendraad/recipe_book/data/model/RecipeEntity.java @@ -35,6 +35,10 @@ public class RecipeEntity extends PanacheEntityBase { @Nullable public String description; + @Column(name = "image_name") + @Nullable + public String imageName; + @Column(name = "num_servings") @SuppressWarnings("NullAway.Init") public Integer numServings; diff --git a/app/src/main/java/dev/blaauwendraad/recipe_book/repository/RecipeRepository.java b/app/src/main/java/dev/blaauwendraad/recipe_book/repository/RecipeRepository.java index 206ce93..8460ffd 100644 --- a/app/src/main/java/dev/blaauwendraad/recipe_book/repository/RecipeRepository.java +++ b/app/src/main/java/dev/blaauwendraad/recipe_book/repository/RecipeRepository.java @@ -34,6 +34,7 @@ public Long persistRecipeEntity( UserAccountEntity userAccountEntity, String title, @Nullable String description, + @Nullable String imageName, Integer numServings, PreparationTime preparationTime, List ingredients, @@ -49,6 +50,7 @@ public Long persistRecipeEntity( var recipeEntity = existingRecipeEntity != null ? existingRecipeEntity : new RecipeEntity(); recipeEntity.title = title; recipeEntity.description = description; + recipeEntity.imageName = imageName; recipeEntity.numServings = numServings; recipeEntity.preparationTime = preparationTime; diff --git a/app/src/main/java/dev/blaauwendraad/recipe_book/service/RecipeService.java b/app/src/main/java/dev/blaauwendraad/recipe_book/service/RecipeService.java index 178f4ea..8196da6 100644 --- a/app/src/main/java/dev/blaauwendraad/recipe_book/service/RecipeService.java +++ b/app/src/main/java/dev/blaauwendraad/recipe_book/service/RecipeService.java @@ -62,6 +62,7 @@ private RecipeSummary toRecipeSummary(RecipeEntity recipeEntity) { recipeEntity.id, recipeEntity.title, recipeEntity.description, + recipeEntity.imageName, recipeEntity.numServings, recipeEntity.preparationTime, recipeEntity.author == null ? null : new Author(recipeEntity.author.id, recipeEntity.author.username)); @@ -77,6 +78,7 @@ public Recipe getRecipeById(Long recipeId) { recipeEntity.id, recipeEntity.title, recipeEntity.description, + recipeEntity.imageName, recipeEntity.numServings, recipeEntity.preparationTime, recipeEntity.author == null ? null : new Author(recipeEntity.author.id, recipeEntity.author.username), @@ -92,6 +94,7 @@ public Recipe getRecipeById(Long recipeId) { public Long createRecipe( String title, @Nullable String description, + @Nullable String imageName, Integer numServings, PreparationTime preparationTime, Long userId, @@ -106,6 +109,7 @@ public Long createRecipe( userAccountEntity, title, description, + imageName, numServings, preparationTime, ingredients, @@ -134,6 +138,7 @@ public void updateRecipe( Long recipeId, String title, @Nullable String description, + @Nullable String imageName, Integer numServings, PreparationTime preparationTime, Long userId, @@ -156,6 +161,7 @@ public void updateRecipe( existingRecipeEntity.author, title, description, + imageName, numServings, preparationTime, ingredients, diff --git a/app/src/main/java/dev/blaauwendraad/recipe_book/service/model/Recipe.java b/app/src/main/java/dev/blaauwendraad/recipe_book/service/model/Recipe.java index a041cc6..31f803a 100644 --- a/app/src/main/java/dev/blaauwendraad/recipe_book/service/model/Recipe.java +++ b/app/src/main/java/dev/blaauwendraad/recipe_book/service/model/Recipe.java @@ -7,6 +7,7 @@ public record Recipe( Long id, String title, @Nullable String description, + @Nullable String imageName, Integer numServings, PreparationTime preparationTime, @Nullable Author author, diff --git a/app/src/main/java/dev/blaauwendraad/recipe_book/service/model/RecipeSummary.java b/app/src/main/java/dev/blaauwendraad/recipe_book/service/model/RecipeSummary.java index 5fef468..de622e6 100644 --- a/app/src/main/java/dev/blaauwendraad/recipe_book/service/model/RecipeSummary.java +++ b/app/src/main/java/dev/blaauwendraad/recipe_book/service/model/RecipeSummary.java @@ -6,6 +6,7 @@ public record RecipeSummary( Long id, String title, @Nullable String description, + @Nullable String imageName, Integer numServings, PreparationTime preparationTime, @Nullable Author author) {} diff --git a/app/src/main/java/dev/blaauwendraad/recipe_book/web/RecipeResource.java b/app/src/main/java/dev/blaauwendraad/recipe_book/web/RecipeResource.java index 588abfb..f0c03e1 100644 --- a/app/src/main/java/dev/blaauwendraad/recipe_book/web/RecipeResource.java +++ b/app/src/main/java/dev/blaauwendraad/recipe_book/web/RecipeResource.java @@ -32,6 +32,7 @@ import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; +import java.io.File; import org.eclipse.microprofile.jwt.JsonWebToken; @ApplicationScoped @@ -69,6 +70,7 @@ public RecipeSummariesResponse getRecipeSummaries(@PathParam("filter") RecipeSum recipeSummary.id(), recipeSummary.title(), recipeSummary.description(), + recipeSummary.imageName(), recipeSummary.numServings(), recipeSummary.preparationTime(), recipeSummary.author() == null @@ -93,6 +95,7 @@ public RecipeResponse getRecipe(@PathParam("recipeId") Long id) { recipe.id(), recipe.title(), recipe.description(), + recipe.imageName(), recipe.numServings(), recipe.preparationTime(), recipe.author() == null @@ -107,6 +110,25 @@ public RecipeResponse getRecipe(@PathParam("recipeId") Long id) { .toList())); } + @GET + @Path("/{recipeId}/image") + @PermitAll + @Produces("image/jpeg") + public Response getRecipeImage(@PathParam("recipeId") Long id) { + Recipe recipe = recipeService.getRecipeById(id); + if (recipe == null) { + throw new NotFoundException("Recipe not found with recipeId: " + id); + } + if (recipe.imageName() == null) { + throw new NotFoundException("Recipe with recipeId: " + id + " has no image"); + } + File imageFile = new File("data/images/" + recipe.imageName()); + if (!imageFile.exists()) { + throw new NotFoundException("Image not found for recipeId: " + id); + } + return Response.ok(imageFile).build(); + } + @POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @@ -115,6 +137,7 @@ public SaveRecipeResponseDto createRecipe(@NotNull @Valid SaveRecipeRequestDto n Long recipeId = recipeService.createRecipe( newRecipe.title(), newRecipe.description(), + newRecipe.imageName(), newRecipe.numServings(), newRecipe.preparationTime(), Long.valueOf(jwt.getName()), @@ -138,6 +161,7 @@ public SaveRecipeResponseDto updateRecipe( recipeId, updatedRecipe.title(), updatedRecipe.description(), + updatedRecipe.imageName(), updatedRecipe.numServings(), updatedRecipe.preparationTime(), Long.valueOf(jwt.getName()), diff --git a/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/RecipeDto.java b/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/RecipeDto.java index 6f6f360..d081134 100644 --- a/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/RecipeDto.java +++ b/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/RecipeDto.java @@ -8,6 +8,7 @@ public record RecipeDto( Long id, String title, @Nullable String description, + @Nullable String imageName, Integer numServings, PreparationTime preparationTime, @Nullable RecipeAuthorDto author, diff --git a/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/RecipeSummaryDto.java b/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/RecipeSummaryDto.java index c53a5a2..40542c0 100644 --- a/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/RecipeSummaryDto.java +++ b/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/RecipeSummaryDto.java @@ -7,6 +7,7 @@ public record RecipeSummaryDto( Long id, String title, @Nullable String description, + @Nullable String imageName, Integer numServings, PreparationTime preparationTime, @Nullable RecipeAuthorDto author) {} diff --git a/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/SaveRecipeRequestDto.java b/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/SaveRecipeRequestDto.java index 006447f..10ccd22 100644 --- a/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/SaveRecipeRequestDto.java +++ b/app/src/main/java/dev/blaauwendraad/recipe_book/web/model/SaveRecipeRequestDto.java @@ -13,6 +13,7 @@ public record SaveRecipeRequestDto( @NotBlank @Size(min = 5, max = 100) String title, @Nullable @Size(max = 2000) String description, + @Nullable @Size(max = 255) String imageName, @NotNull @Positive @Max(100) Integer numServings, @NotNull PreparationTime preparationTime, @Size(min = 1, max = 50) List<@Valid IngredientDto> ingredients, diff --git a/app/src/main/resources/db/dev-data/V2.2__insert_recipes.sql b/app/src/main/resources/db/dev-data/V2.2__insert_recipes.sql index 743b399..4c869f5 100644 --- a/app/src/main/resources/db/dev-data/V2.2__insert_recipes.sql +++ b/app/src/main/resources/db/dev-data/V2.2__insert_recipes.sql @@ -1,15 +1,15 @@ -- Insert demo recipes -INSERT INTO recipe (title, description, num_servings, preparation_time, author_id) -SELECT title, description, num_servings, preparation_time, ua.id -FROM (VALUES ('Spaghetti Bolognese', 'Classic Italian pasta dish.', 4, 'MIN_0_15', 'Robert'), - ('Chicken Curry', 'Spicy Indian-style curry with tender chicken.', 4, 'MIN_0_15', 'Breus'), - ('Caesar Salad', 'Classic romaine lettuce salad with creamy dressing.', 4, 'MIN_15_30', 'ChefMaster'), - ('Chocolate Chip Cookies', 'Soft and chewy homemade cookies.', 4, 'MIN_15_30', 'FoodLover'), - ('Mushroom Risotto', 'Creamy Italian rice dish with mushrooms.', 4, 'MIN_30_45', 'Breus'), - ('Fish Tacos', 'Mexican-style fish tacos with fresh salsa.', 4, 'MIN_30_45', 'ChefMaster'), - ('Greek Salad', 'Traditional Mediterranean salad with feta cheese.', 4, 'HOUR_PLUS', 'FoodLover'), - ('Beef Stir Fry', 'Quick and easy Asian-style beef dish.', 4, 'HOUR_PLUS', 'Robert'), - ('Banana Bread', 'Moist and delicious homemade bread.', 4, 'MIN_15_30', NULL), - ('Vegetable Soup', 'Healthy and warming soup with mixed vegetables.', 4, 'MIN_15_30', - NULL)) AS recipes(title, description, num_servings, preparation_time, username) +INSERT INTO recipe (title, description, image_name, num_servings, preparation_time, author_id) +SELECT title, description, image_name, num_servings, preparation_time, ua.id +FROM (VALUES ('Spaghetti Bolognese', 'Classic Italian pasta dish.', 'spaghett.jpg', 4, 'MIN_0_15', 'Robert'), + ('Chicken Curry', 'Spicy Indian-style curry with tender chicken.', null, 4, 'MIN_0_15', 'Breus'), + ('Caesar Salad', 'Classic romaine lettuce salad with creamy dressing.', null, 4, 'MIN_15_30', 'ChefMaster'), + ('Chocolate Chip Cookies', 'Soft and chewy homemade cookies.', null, 4, 'MIN_15_30', 'FoodLover'), + ('Mushroom Risotto', 'Creamy Italian rice dish with mushrooms.', null, 4, 'MIN_30_45', 'Breus'), + ('Fish Tacos', 'Mexican-style fish tacos with fresh salsa.', null, 4, 'MIN_30_45', 'ChefMaster'), + ('Greek Salad', 'Traditional Mediterranean salad with feta cheese.', null, 4, 'HOUR_PLUS', 'FoodLover'), + ('Beef Stir Fry', 'Quick and easy Asian-style beef dish.', null, 4, 'HOUR_PLUS', 'Robert'), + ('Banana Bread', 'Moist and delicious homemade bread.', null, 4, 'MIN_15_30', NULL), + ('Vegetable Soup', 'Healthy and warming soup with mixed vegetables.', null, 4, 'MIN_15_30', + NULL)) AS recipes(title, description, image_name, num_servings, preparation_time, username) LEFT JOIN user_account ua ON ua.username = recipes.username; diff --git a/app/src/main/resources/db/migration/V1.2__create_recipe_table.sql b/app/src/main/resources/db/migration/V1.2__create_recipe_table.sql index f5110c7..989886b 100644 --- a/app/src/main/resources/db/migration/V1.2__create_recipe_table.sql +++ b/app/src/main/resources/db/migration/V1.2__create_recipe_table.sql @@ -3,6 +3,7 @@ CREATE TABLE recipe id BIGSERIAL PRIMARY KEY, title VARCHAR(255) NOT NULL, description TEXT, + image_name VARCHAR(255), num_servings INTEGER NOT NULL, preparation_time VARCHAR CHECK (preparation_time IN ('MIN_0_15', 'MIN_15_30', 'MIN_30_45', 'MIN_45_60', 'HOUR_PLUS')), diff --git a/docker-compose.yml b/docker-compose.yml index ddf3f15..fa27cac 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,5 +21,8 @@ services: PRIV_KEY_LOCATION: classpath:local-dev-keys/privateKey.pem ports: - "8081:8081" + volumes: + - images:/deployments/data/images volumes: - pg_data: \ No newline at end of file + pg_data: + images: \ No newline at end of file diff --git a/ui/src/api/httpClient.ts b/ui/src/api/httpClient.ts index 90c0b3d..9e5e66c 100644 --- a/ui/src/api/httpClient.ts +++ b/ui/src/api/httpClient.ts @@ -3,7 +3,7 @@ import { useAuth } from "../auth/useAuth"; import { refreshAccessToken } from "./userAuthenticationApi"; const BACKEND_HOST_URL = import.meta.env.VITE_BACKEND_HOST_URL || "http://localhost:8081"; -const API_BASE_URL = `${BACKEND_HOST_URL}/api/`; +export const API_BASE_URL = `${BACKEND_HOST_URL}/api`; // Types for HTTP client export type HttpMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH"; diff --git a/ui/src/components/RecipeSummary.vue b/ui/src/components/RecipeSummary.vue index 92fd3a5..c089bab 100644 --- a/ui/src/components/RecipeSummary.vue +++ b/ui/src/components/RecipeSummary.vue @@ -1,6 +1,7 @@