diff --git a/src/main/java/app/mealsmadeeasy/api/image/ImageController.java b/src/main/java/app/mealsmadeeasy/api/image/ImageController.java index 85cad3f..f4ec8ef 100644 --- a/src/main/java/app/mealsmadeeasy/api/image/ImageController.java +++ b/src/main/java/app/mealsmadeeasy/api/image/ImageController.java @@ -5,7 +5,6 @@ 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.view.ImageView; -import app.mealsmadeeasy.api.sliceview.SliceView; import app.mealsmadeeasy.api.sliceview.SliceViewService; import app.mealsmadeeasy.api.user.User; import app.mealsmadeeasy.api.user.UserService; @@ -26,6 +25,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; +import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -54,16 +54,21 @@ public class ImageController { } @GetMapping - public ResponseEntity> getOwnedImages( + public ResponseEntity getOwnedImages( @AuthenticationPrincipal User principal, + @RequestParam(name = "count", defaultValue = "false") boolean doCount, Pageable pageable ) { - final Slice images = this.imageService.getOwnedImages(principal, pageable); - final Slice imageViews = images.map(image -> - this.imageToViewConverter.convert(image, principal, false) - ); - final int count = this.imageService.countOwnedImages(principal); - return ResponseEntity.ok(this.sliceViewService.getSliceView(imageViews, count)); + if (doCount) { + final int count = this.imageService.countOwnedImages(principal); + return ResponseEntity.ok(Map.of("count", count)); + } else { + final Slice images = this.imageService.getOwnedImages(principal, pageable); + final Slice imageViews = images.map(image -> + this.imageToViewConverter.convert(image, principal, false) + ); + return ResponseEntity.ok(this.sliceViewService.getSliceView(imageViews)); + } } @GetMapping("/{username}/{filename}") diff --git a/src/main/java/app/mealsmadeeasy/api/recipe/RecipesController.java b/src/main/java/app/mealsmadeeasy/api/recipe/RecipesController.java index 4489e9e..5ba061b 100644 --- a/src/main/java/app/mealsmadeeasy/api/recipe/RecipesController.java +++ b/src/main/java/app/mealsmadeeasy/api/recipe/RecipesController.java @@ -88,15 +88,13 @@ public class RecipesController { final Slice publicRecipeInfoViews = publicRecipes.map( recipe -> this.recipeToInfoViewConverter.convert(recipe, null) ); - final int count = this.recipeService.countPublicRecipes(); - return ResponseEntity.ok(this.sliceViewService.getSliceView(publicRecipeInfoViews, count)); + return ResponseEntity.ok(this.sliceViewService.getSliceView(publicRecipeInfoViews)); } else { final Slice recipes = this.recipeService.getViewableBy(pageable, user); final Slice recipeInfoViews = recipes.map( recipe -> this.recipeToInfoViewConverter.convert(recipe, user) ); - final int count = this.recipeService.countViewableBy(user); - return ResponseEntity.ok(this.sliceViewService.getSliceView(recipeInfoViews, count)); + return ResponseEntity.ok(this.sliceViewService.getSliceView(recipeInfoViews)); } } @@ -166,8 +164,7 @@ public class RecipesController { pageable, principal ); - final int count = this.recipeCommentService.countComments(username, slug); - return ResponseEntity.ok(this.sliceViewService.getSliceView(slice, count)); + return ResponseEntity.ok(this.sliceViewService.getSliceView(slice)); } @PostMapping("/{username}/{slug}/comments") diff --git a/src/main/java/app/mealsmadeeasy/api/sliceview/SliceView.java b/src/main/java/app/mealsmadeeasy/api/sliceview/SliceView.java index a657832..3b4aef2 100644 --- a/src/main/java/app/mealsmadeeasy/api/sliceview/SliceView.java +++ b/src/main/java/app/mealsmadeeasy/api/sliceview/SliceView.java @@ -2,7 +2,7 @@ package app.mealsmadeeasy.api.sliceview; import java.util.List; -public record SliceView(List content, SliceViewMeta slice, Integer count) { +public record SliceView(List content, SliceViewMeta slice) { public record SliceViewMeta(Integer size, Integer number, Boolean hasNext) {} diff --git a/src/main/java/app/mealsmadeeasy/api/sliceview/SliceViewService.java b/src/main/java/app/mealsmadeeasy/api/sliceview/SliceViewService.java index affaa45..4730429 100644 --- a/src/main/java/app/mealsmadeeasy/api/sliceview/SliceViewService.java +++ b/src/main/java/app/mealsmadeeasy/api/sliceview/SliceViewService.java @@ -6,13 +6,13 @@ import org.springframework.stereotype.Service; @Service public class SliceViewService { - public SliceView getSliceView(Slice slice, int count) { + public SliceView getSliceView(Slice slice) { final SliceView.SliceViewMeta meta = new SliceView.SliceViewMeta( slice.getSize(), slice.getNumber(), slice.hasNext() ); - return new SliceView<>(slice.getContent(), meta, count); + return new SliceView<>(slice.getContent(), meta); } }