39 lines
1.5 KiB
Java
39 lines
1.5 KiB
Java
package app.mealsmadeeasy.api.recipe.converter;
|
|
|
|
import app.mealsmadeeasy.api.image.converter.ImageToViewConverter;
|
|
import app.mealsmadeeasy.api.recipe.Recipe;
|
|
import app.mealsmadeeasy.api.recipe.RecipeService;
|
|
import app.mealsmadeeasy.api.recipe.view.RecipeInfoView;
|
|
import app.mealsmadeeasy.api.user.User;
|
|
import app.mealsmadeeasy.api.user.view.UserInfoView;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
@Component
|
|
@RequiredArgsConstructor
|
|
public class RecipeToInfoViewConverter {
|
|
|
|
private final ImageToViewConverter imageToViewConverter;
|
|
private final RecipeService recipeService;
|
|
|
|
public RecipeInfoView convert(@NotNull Recipe recipe, @Nullable User viewer) {
|
|
return RecipeInfoView.builder()
|
|
.id(recipe.getId())
|
|
.created(recipe.getCreated())
|
|
.modified(recipe.getModified())
|
|
.slug(recipe.getSlug())
|
|
.title(recipe.getTitle())
|
|
.preparationTime(recipe.getPreparationTime())
|
|
.cookingTime(recipe.getCookingTime())
|
|
.totalTime(recipe.getTotalTime())
|
|
.owner(UserInfoView.from(recipe.getOwner()))
|
|
.isPublic(recipe.getIsPublic())
|
|
.starCount(this.recipeService.getStarCount(recipe))
|
|
.mainImage(this.imageToViewConverter.convert(recipe.getMainImage(), viewer, false))
|
|
.build();
|
|
}
|
|
|
|
}
|