meals-made-easy-api/src/main/java/app/mealsmadeeasy/api/image/converter/ImageUpdateBodyToSpecConverter.java

39 lines
1.3 KiB
Java

package app.mealsmadeeasy.api.image.converter;
import app.mealsmadeeasy.api.image.body.ImageUpdateBody;
import app.mealsmadeeasy.api.image.spec.ImageUpdateSpec;
import app.mealsmadeeasy.api.user.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.stream.Collectors;
@Component
@RequiredArgsConstructor
public class ImageUpdateBodyToSpecConverter {
private final UserService userService;
public ImageUpdateSpec convert(ImageUpdateBody body) {
final var builder = ImageUpdateSpec.builder()
.alt(body.getAlt())
.caption(body.getCaption())
.isPublic(body.getIsPublic())
.clearAllViewers(body.getClearAllViewers());
if (body.getViewersToAdd() != null) {
builder.viewersToAdd(body.getViewersToAdd().stream()
.map(this.userService::getUser)
.collect(Collectors.toSet())
);
}
if (body.getViewersToRemove() != null) {
builder.viewersToRemove(body.getViewersToRemove().stream()
.map(this.userService::getUser)
.collect(Collectors.toSet())
);
}
return builder.build();
}
}