Refactor ImageController to use ImageUpdateBodyToSpecConverter.
This commit is contained in:
parent
45c71ed0d8
commit
67a4a1339f
@ -2,8 +2,8 @@ package app.mealsmadeeasy.api.image;
|
|||||||
|
|
||||||
import app.mealsmadeeasy.api.image.body.ImageUpdateBody;
|
import app.mealsmadeeasy.api.image.body.ImageUpdateBody;
|
||||||
import app.mealsmadeeasy.api.image.converter.ImageToViewConverter;
|
import app.mealsmadeeasy.api.image.converter.ImageToViewConverter;
|
||||||
|
import app.mealsmadeeasy.api.image.converter.ImageUpdateBodyToSpecConverter;
|
||||||
import app.mealsmadeeasy.api.image.spec.ImageCreateSpec;
|
import app.mealsmadeeasy.api.image.spec.ImageCreateSpec;
|
||||||
import app.mealsmadeeasy.api.image.spec.ImageUpdateSpec;
|
|
||||||
import app.mealsmadeeasy.api.image.view.ImageView;
|
import app.mealsmadeeasy.api.image.view.ImageView;
|
||||||
import app.mealsmadeeasy.api.user.User;
|
import app.mealsmadeeasy.api.user.User;
|
||||||
import app.mealsmadeeasy.api.user.UserService;
|
import app.mealsmadeeasy.api.user.UserService;
|
||||||
@ -32,27 +32,7 @@ public class ImageController {
|
|||||||
private final ImageService imageService;
|
private final ImageService imageService;
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
private final ImageToViewConverter imageToViewConverter;
|
private final ImageToViewConverter imageToViewConverter;
|
||||||
|
private final ImageUpdateBodyToSpecConverter imageUpdateBodyToSpecConverter;
|
||||||
private ImageUpdateSpec getImageUpdateSpec(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();
|
|
||||||
}
|
|
||||||
|
|
||||||
@ExceptionHandler
|
@ExceptionHandler
|
||||||
public ResponseEntity<AccessDeniedView> onAccessDenied(AccessDeniedException e) {
|
public ResponseEntity<AccessDeniedView> onAccessDenied(AccessDeniedException e) {
|
||||||
@ -118,7 +98,11 @@ public class ImageController {
|
|||||||
) {
|
) {
|
||||||
final User owner = this.userService.getUser(username);
|
final User owner = this.userService.getUser(username);
|
||||||
final Image image = this.imageService.getByOwnerAndFilename(owner, filename, principal);
|
final Image image = this.imageService.getByOwnerAndFilename(owner, filename, principal);
|
||||||
final Image updated = this.imageService.update(image, principal, this.getImageUpdateSpec(body));
|
final Image updated = this.imageService.update(
|
||||||
|
image,
|
||||||
|
principal,
|
||||||
|
this.imageUpdateBodyToSpecConverter.convert(body)
|
||||||
|
);
|
||||||
return ResponseEntity.ok(this.imageToViewConverter.convert(updated, principal, true));
|
return ResponseEntity.ok(this.imageToViewConverter.convert(updated, principal, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,38 @@
|
|||||||
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user