Skip to content

Commit 1407ef8

Browse files
refactor(dto): convert DTO classes to records for simplicity
1 parent 424f276 commit 1407ef8

File tree

6 files changed

+82
-119
lines changed

6 files changed

+82
-119
lines changed
Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,19 @@
11
package com.otavio.aifoodapp.dto;
22

3-
4-
53
import java.time.LocalDate;
64

7-
8-
import lombok.AllArgsConstructor;
9-
import lombok.Data;
10-
import lombok.NoArgsConstructor;
11-
12-
@Data
13-
@AllArgsConstructor
14-
@NoArgsConstructor
15-
public class FoodDto {
16-
private Long id;
17-
private String name;
18-
private Integer quantity;
19-
private LocalDate expiration;
20-
private Double calories;
21-
private Double protein;
22-
private Double fat;
23-
private Double carbohydrates;
24-
private Double fiber;
25-
private Double sugar;
26-
private Double sodium;
27-
private String foodGroup;
28-
private String tags;
29-
}
5+
public record FoodDto(
6+
Long id,
7+
String name,
8+
Integer quantity,
9+
LocalDate expiration,
10+
Double calories,
11+
Double protein,
12+
Double fat,
13+
Double carbohydrates,
14+
Double fiber,
15+
Double sugar,
16+
Double sodium,
17+
String foodGroup,
18+
String tags
19+
) {}

src/main/java/com/otavio/aifoodapp/dto/FoodItemCreateDto.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,8 @@
22

33
import java.time.LocalDate;
44

5-
import lombok.AllArgsConstructor;
6-
import lombok.Data;
7-
import lombok.NoArgsConstructor;
8-
9-
@Data
10-
@AllArgsConstructor
11-
@NoArgsConstructor
12-
public class FoodItemCreateDto {
13-
private String name;
14-
private Integer quantity;
15-
private LocalDate expiration;
16-
}
5+
public record FoodItemCreateDto(
6+
String name,
7+
Integer quantity,
8+
LocalDate expiration
9+
) {}
Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,13 @@
11
package com.otavio.aifoodapp.dto;
22

3-
4-
// import com.otavio.aifoodapp.model.RecipeIngredient; // Unused import removed
53
import java.util.List;
64
import java.util.Set;
75

8-
import lombok.AllArgsConstructor;
9-
import lombok.Data;
10-
import lombok.NoArgsConstructor;
11-
12-
@Data
13-
@NoArgsConstructor
14-
@AllArgsConstructor
15-
16-
public class RecipeDto {
17-
private Long id;
18-
private String name;
19-
private String description;
20-
private List<String> nutritionalInfo;
21-
private List<String> instructions;
22-
private Set<RecipeIngredientDto> ingredientsList;
23-
24-
}
6+
public record RecipeDto(
7+
Long id,
8+
String name,
9+
String description,
10+
List<String> nutritionalInfo,
11+
List<String> instructions,
12+
Set<RecipeIngredientDto> ingredientsList
13+
) {}
Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,8 @@
11
package com.otavio.aifoodapp.dto;
22

3-
4-
import lombok.AllArgsConstructor;
5-
import lombok.Data;
6-
import lombok.NoArgsConstructor;
7-
8-
@Data
9-
@AllArgsConstructor
10-
@NoArgsConstructor
11-
public class RecipeIngredientDto {
12-
private Long id;
13-
private String name;
14-
private Double quantity;
15-
private String unit;
16-
17-
18-
}
3+
public record RecipeIngredientDto(
4+
Long id,
5+
String name,
6+
Double quantity,
7+
String unit
8+
) {}

src/main/java/com/otavio/aifoodapp/mapper/FoodMapper.java

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,27 @@
1414
public class FoodMapper {
1515
public FoodItem map(FoodDto foodDto) {
1616
FoodItem foodItem = new FoodItem();
17-
foodItem.setId(foodDto.getId());
18-
foodItem.setName(foodDto.getName());
19-
foodItem.setQuantity(foodDto.getQuantity());
20-
foodItem.setExpiration(foodDto.getExpiration());
21-
foodItem.setCalories(foodDto.getCalories());
22-
foodItem.setProtein(foodDto.getProtein());
23-
foodItem.setFat(foodDto.getFat());
24-
foodItem.setCarbohydrates(foodDto.getCarbohydrates());
25-
foodItem.setFiber(foodDto.getFiber());
26-
foodItem.setSugar(foodDto.getSugar());
27-
foodItem.setSodium(foodDto.getSodium());
28-
foodItem.setFoodGroup(foodDto.getFoodGroup() != null ? FoodGroup.valueOf(foodDto.getFoodGroup()) : null);
29-
foodItem.setTags(foodDto.getTags() != null ? List.of(foodDto.getTags().split(",")) : new ArrayList<>());
17+
foodItem.setId(foodDto.id());
18+
foodItem.setName(foodDto.name());
19+
foodItem.setQuantity(foodDto.quantity());
20+
foodItem.setExpiration(foodDto.expiration());
21+
foodItem.setCalories(foodDto.calories());
22+
foodItem.setProtein(foodDto.protein());
23+
foodItem.setFat(foodDto.fat());
24+
foodItem.setCarbohydrates(foodDto.carbohydrates());
25+
foodItem.setFiber(foodDto.fiber());
26+
foodItem.setSugar(foodDto.sugar());
27+
foodItem.setSodium(foodDto.sodium());
28+
foodItem.setFoodGroup(foodDto.foodGroup() != null ? FoodGroup.valueOf(foodDto.foodGroup()) : null);
29+
foodItem.setTags(foodDto.tags() != null ? List.of(foodDto.tags().split(",")) : new ArrayList<>());
3030
return foodItem;
3131
}
3232

3333
public FoodItem map(FoodItemCreateDto createDto) {
3434
FoodItem foodItem = new FoodItem();
35-
foodItem.setName(createDto.getName());
36-
foodItem.setQuantity(createDto.getQuantity());
37-
foodItem.setExpiration(createDto.getExpiration());
35+
foodItem.setName(createDto.name());
36+
foodItem.setQuantity(createDto.quantity());
37+
foodItem.setExpiration(createDto.expiration());
3838
// Other fields will be populated by the AI service
3939
return foodItem;
4040
}
@@ -46,20 +46,20 @@ public FoodItem map(FoodItemCreateDto createDto, User user) {
4646
}
4747

4848
public FoodDto map(FoodItem foodItem) {
49-
FoodDto foodDto = new FoodDto();
50-
foodDto.setId(foodItem.getId());
51-
foodDto.setName(foodItem.getName());
52-
foodDto.setQuantity(foodItem.getQuantity());
53-
foodDto.setExpiration(foodItem.getExpiration());
54-
foodDto.setCalories(foodItem.getCalories());
55-
foodDto.setProtein(foodItem.getProtein());
56-
foodDto.setFat(foodItem.getFat());
57-
foodDto.setCarbohydrates(foodItem.getCarbohydrates());
58-
foodDto.setFiber(foodItem.getFiber());
59-
foodDto.setSugar(foodItem.getSugar());
60-
foodDto.setSodium(foodItem.getSodium());
61-
foodDto.setFoodGroup(foodItem.getFoodGroup() != null ? foodItem.getFoodGroup().name() : null);
62-
foodDto.setTags(foodItem.getTags() != null ? String.join(",", foodItem.getTags()) : "");
63-
return foodDto;
49+
return new FoodDto(
50+
foodItem.getId(),
51+
foodItem.getName(),
52+
foodItem.getQuantity(),
53+
foodItem.getExpiration(),
54+
foodItem.getCalories(),
55+
foodItem.getProtein(),
56+
foodItem.getFat(),
57+
foodItem.getCarbohydrates(),
58+
foodItem.getFiber(),
59+
foodItem.getSugar(),
60+
foodItem.getSodium(),
61+
foodItem.getFoodGroup() != null ? foodItem.getFoodGroup().name() : null,
62+
foodItem.getTags() != null ? String.join(",", foodItem.getTags()) : ""
63+
);
6464
}
6565
}

src/main/java/com/otavio/aifoodapp/mapper/RecipeMapper.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -76,21 +76,21 @@ public RecipeDto toDto(Recipe recipe) {
7676
return null;
7777
}
7878

79-
RecipeDto dto = new RecipeDto();
80-
dto.setId(recipe.getId());
81-
dto.setName(recipe.getName());
82-
dto.setDescription(recipe.getDescription());
83-
dto.setInstructions(recipe.getInstructions());
84-
dto.setNutritionalInfo(recipe.getNutritionalInfo());
85-
79+
Set<RecipeIngredientDto> ingredientsDto = null;
8680
if (recipe.getIngredientsList() != null) {
87-
Set<RecipeIngredientDto> ingredientsDto = recipe.getIngredientsList().stream()
81+
ingredientsDto = recipe.getIngredientsList().stream()
8882
.map(this::toIngredientDto)
8983
.collect(Collectors.toSet());
90-
dto.setIngredientsList(ingredientsDto);
91-
9284
}
93-
return dto;
85+
86+
return new RecipeDto(
87+
recipe.getId(),
88+
recipe.getName(),
89+
recipe.getDescription(),
90+
recipe.getNutritionalInfo(),
91+
recipe.getInstructions(),
92+
ingredientsDto
93+
);
9494
}
9595

9696
public List<RecipeDto> toDto(List<Recipe> recipes) {
@@ -103,10 +103,11 @@ public List<RecipeDto> toDto(List<Recipe> recipes) {
103103
}
104104

105105
private RecipeIngredientDto toIngredientDto(RecipeIngredient recipeIngredient) {
106-
RecipeIngredientDto dto = new RecipeIngredientDto();
107-
dto.setId(recipeIngredient.getId());
108-
dto.setQuantity(recipeIngredient.getQuantity());
109-
dto.setUnit(recipeIngredient.getUnit());
110-
return dto;
106+
return new RecipeIngredientDto(
107+
recipeIngredient.getId(),
108+
recipeIngredient.getName(),
109+
recipeIngredient.getQuantity(),
110+
recipeIngredient.getUnit()
111+
);
111112
}
112113
}

0 commit comments

Comments
 (0)