From 766d22cbbe2397b04f8b660f2665b5b87cb25f25 Mon Sep 17 00:00:00 2001 From: Steve Davis Date: Tue, 19 Jul 2022 12:28:32 +0100 Subject: [PATCH 1/2] Refactor to be more consistent with other projects --- .../menu/api/v1/CategoryController.java | 4 ++-- .../workloads/menu/api/v1/ItemController.java | 2 +- .../workloads/menu/api/v1/MenuController.java | 17 ++++++++--------- .../workloads/menu/api/v2/MenuControllerV2.java | 7 +++++-- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/CategoryController.java b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/CategoryController.java index 6314a874..29760816 100644 --- a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/CategoryController.java +++ b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/CategoryController.java @@ -38,7 +38,7 @@ public class CategoryController { description = "Adds a category to menu", operationId = "AddMenuCategory") @CreateAPIResponses - ResponseEntity addMenuCategory( + ResponseEntity createCategory( @Parameter(description = "Menu id", required = true) @PathVariable("id") UUID menuId, @Valid @RequestBody CreateCategoryRequest body, @Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) { @@ -53,7 +53,7 @@ ResponseEntity addMenuCategory( description = "Update a category to menu", operationId = "UpdateMenuCategory") @UpdateAPIResponses - ResponseEntity updateMenuCategory( + ResponseEntity updateCategory( @Parameter(description = "Menu id", required = true) @PathVariable("id") UUID menuId, @Parameter(description = "Category id", required = true) @PathVariable("categoryId") UUID categoryId, diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/ItemController.java b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/ItemController.java index 836be767..f8068d3b 100644 --- a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/ItemController.java +++ b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/ItemController.java @@ -38,7 +38,7 @@ public class ItemController { description = "Adds a menu item", operationId = "AddMenuItem") @CreateAPIResponses - ResponseEntity addMenuItem( + ResponseEntity createItem( @Parameter(description = "Menu id", required = true) @PathVariable("id") UUID menuId, @Parameter(description = "Category id", required = true) @PathVariable("categoryId") UUID categoryId, diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/MenuController.java b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/MenuController.java index 760ef69f..3ace4b94 100644 --- a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/MenuController.java +++ b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/MenuController.java @@ -28,9 +28,6 @@ import java.util.UUID; import java.util.stream.Collectors; import javax.validation.Valid; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -49,11 +46,15 @@ @RestController public class MenuController { - Logger logger = LoggerFactory.getLogger(MenuController.class); + private final MenuMapper menuMapper; - @Autowired private MenuMapper menuMapper; + private final SearchMenuResultItemMapper searchMenuResultItemMapper; - @Autowired private SearchMenuResultItemMapper searchMenuResultItemMapper; + public MenuController( + MenuMapper menuMapper, SearchMenuResultItemMapper searchMenuResultItemMapper) { + this.menuMapper = menuMapper; + this.searchMenuResultItemMapper = searchMenuResultItemMapper; + } @PostMapping @Operation( @@ -115,9 +116,7 @@ ResponseEntity searchMenu( new SearchMenuResult( pageSize, pageNumber, - menuList.stream() - .map(m -> searchMenuResultItemMapper.toDto(m)) - .collect(Collectors.toList()))); + menuList.stream().map(searchMenuResultItemMapper::toDto).collect(Collectors.toList()))); } @GetMapping(value = "/{id}") diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/api/v2/MenuControllerV2.java b/java/src/main/java/com/amido/stacks/workloads/menu/api/v2/MenuControllerV2.java index d15b1e69..b898d1e7 100644 --- a/java/src/main/java/com/amido/stacks/workloads/menu/api/v2/MenuControllerV2.java +++ b/java/src/main/java/com/amido/stacks/workloads/menu/api/v2/MenuControllerV2.java @@ -11,7 +11,6 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import java.util.ArrayList; import java.util.UUID; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -24,7 +23,11 @@ @RestController public class MenuControllerV2 { - @Autowired private MenuMapper menuMapper; + private final MenuMapper menuMapper; + + public MenuControllerV2(MenuMapper menuMapper) { + this.menuMapper = menuMapper; + } @GetMapping(value = "/{id}") @Operation( From 538a7f0b56ab6a95a46a073ee6ab2b6c3b36d02c Mon Sep 17 00:00:00 2001 From: Steve Davis Date: Tue, 19 Jul 2022 15:42:33 +0100 Subject: [PATCH 2/2] Refactored to use Service classes --- .../menu/api/v1/CategoryController.java | 10 ++- .../workloads/menu/api/v1/ItemController.java | 11 ++- .../workloads/menu/api/v1/MenuController.java | 64 ++------------ .../menu/api/v2/MenuControllerV2.java | 20 ++--- .../menu/service/v1/CategoryService.java | 24 ++++++ .../menu/service/v1/ItemService.java | 23 +++++ .../menu/service/v1/MenuService.java | 84 +++++++++++++++++++ .../menu/service/v2/MenuServiceV2.java | 31 +++++++ 8 files changed, 192 insertions(+), 75 deletions(-) create mode 100644 java/src/main/java/com/amido/stacks/workloads/menu/service/v1/CategoryService.java create mode 100644 java/src/main/java/com/amido/stacks/workloads/menu/service/v1/ItemService.java create mode 100644 java/src/main/java/com/amido/stacks/workloads/menu/service/v1/MenuService.java create mode 100644 java/src/main/java/com/amido/stacks/workloads/menu/service/v2/MenuServiceV2.java diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/CategoryController.java b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/CategoryController.java index 29760816..4cbc63ab 100644 --- a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/CategoryController.java +++ b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/CategoryController.java @@ -9,10 +9,12 @@ import com.amido.stacks.core.api.dto.response.ResourceUpdatedResponse; import com.amido.stacks.workloads.menu.api.v1.dto.request.CreateCategoryRequest; import com.amido.stacks.workloads.menu.api.v1.dto.request.UpdateCategoryRequest; +import com.amido.stacks.workloads.menu.service.v1.CategoryService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import java.util.UUID; import javax.validation.Valid; +import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -29,8 +31,11 @@ path = "/v1/menu/{id}/category", produces = MediaType.APPLICATION_JSON_VALUE + "; charset=utf-8") @RestController +@RequiredArgsConstructor public class CategoryController { + private final CategoryService categoryService; + @PostMapping @Operation( tags = "Category", @@ -43,7 +48,7 @@ ResponseEntity createCategory( @Valid @RequestBody CreateCategoryRequest body, @Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) { - return new ResponseEntity<>(new ResourceCreatedResponse(UUID.randomUUID()), HttpStatus.CREATED); + return new ResponseEntity<>(categoryService.create(body, correlationId), HttpStatus.CREATED); } @PutMapping("/{categoryId}") @@ -60,7 +65,8 @@ ResponseEntity updateCategory( @Valid @RequestBody UpdateCategoryRequest body, @Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) { - return new ResponseEntity<>(new ResourceUpdatedResponse(UUID.randomUUID()), OK); + return new ResponseEntity<>( + categoryService.update(menuId, categoryId, body, correlationId), OK); } @DeleteMapping("/{categoryId}") diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/ItemController.java b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/ItemController.java index f8068d3b..c21ab46b 100644 --- a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/ItemController.java +++ b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/ItemController.java @@ -9,10 +9,12 @@ import com.amido.stacks.core.api.dto.response.ResourceUpdatedResponse; import com.amido.stacks.workloads.menu.api.v1.dto.request.CreateItemRequest; import com.amido.stacks.workloads.menu.api.v1.dto.request.UpdateItemRequest; +import com.amido.stacks.workloads.menu.service.v1.ItemService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import java.util.UUID; import javax.validation.Valid; +import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -29,8 +31,11 @@ path = "/v1/menu/{id}/category/{categoryId}/items", produces = MediaType.APPLICATION_JSON_VALUE + "; charset=utf-8") @RestController +@RequiredArgsConstructor public class ItemController { + private final ItemService itemService; + @PostMapping @Operation( tags = "Item", @@ -45,7 +50,8 @@ ResponseEntity createItem( @Valid @RequestBody CreateItemRequest body, @Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) { - return new ResponseEntity<>(new ResourceCreatedResponse(UUID.randomUUID()), HttpStatus.CREATED); + return new ResponseEntity<>( + itemService.create(menuId, categoryId, body, correlationId), HttpStatus.CREATED); } @PutMapping("/{itemId}") @@ -63,7 +69,8 @@ ResponseEntity updateItem( @Valid @RequestBody UpdateItemRequest body, @Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) { - return new ResponseEntity<>(new ResourceUpdatedResponse(UUID.randomUUID()), HttpStatus.OK); + return new ResponseEntity<>( + itemService.update(menuId, categoryId, body, correlationId), HttpStatus.OK); } @DeleteMapping("/{itemId}") diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/MenuController.java b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/MenuController.java index 3ace4b94..8fffba5e 100644 --- a/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/MenuController.java +++ b/java/src/main/java/com/amido/stacks/workloads/menu/api/v1/MenuController.java @@ -13,21 +13,15 @@ import com.amido.stacks.workloads.menu.api.v1.dto.request.UpdateMenuRequest; import com.amido.stacks.workloads.menu.api.v1.dto.response.MenuDTO; import com.amido.stacks.workloads.menu.api.v1.dto.response.SearchMenuResult; -import com.amido.stacks.workloads.menu.domain.Category; -import com.amido.stacks.workloads.menu.domain.Item; -import com.amido.stacks.workloads.menu.domain.Menu; -import com.amido.stacks.workloads.menu.mappers.MenuMapper; -import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper; +import com.amido.stacks.workloads.menu.service.v1.MenuService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; -import java.util.ArrayList; -import java.util.List; import java.util.UUID; -import java.util.stream.Collectors; import javax.validation.Valid; +import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -44,17 +38,10 @@ @RequestMapping(path = "/v1/menu", produces = MediaType.APPLICATION_JSON_VALUE + "; charset=utf-8") @RestController +@RequiredArgsConstructor public class MenuController { - private final MenuMapper menuMapper; - - private final SearchMenuResultItemMapper searchMenuResultItemMapper; - - public MenuController( - MenuMapper menuMapper, SearchMenuResultItemMapper searchMenuResultItemMapper) { - this.menuMapper = menuMapper; - this.searchMenuResultItemMapper = searchMenuResultItemMapper; - } + private final MenuService menuService; @PostMapping @Operation( @@ -67,7 +54,7 @@ ResponseEntity createMenu( @Valid @RequestBody CreateMenuRequest body, @Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) { - return new ResponseEntity<>(new ResourceCreatedResponse(UUID.randomUUID()), HttpStatus.CREATED); + return new ResponseEntity<>(menuService.create(body, correlationId), HttpStatus.CREATED); } @GetMapping @@ -91,32 +78,7 @@ ResponseEntity searchMenu( @RequestParam(value = "pageNumber", required = false, defaultValue = "1") Integer pageNumber) { - List menuList = new ArrayList<>(); - - final String menuId = "d5785e28-306b-4e23-add0-3f9092d395f8"; - - Menu mockMenu; - if (restaurantId == null) { - mockMenu = - new Menu( - menuId, - "58a1df85-6bdc-412a-a118-0f0e394c1342", - "name", - "description", - new ArrayList<>(), - true); - } else { - mockMenu = - new Menu(menuId, restaurantId.toString(), "name", "description", new ArrayList<>(), true); - } - - menuList.add(mockMenu); - - return ResponseEntity.ok( - new SearchMenuResult( - pageSize, - pageNumber, - menuList.stream().map(searchMenuResultItemMapper::toDto).collect(Collectors.toList()))); + return ResponseEntity.ok(menuService.search(searchTerm, restaurantId, pageSize, pageNumber)); } @GetMapping(value = "/{id}") @@ -137,17 +99,7 @@ ResponseEntity getMenu( @PathVariable(name = "id") UUID id, @Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) { - final String restaurantId = "58a1df85-6bdc-412a-a118-0f0e394c1342"; - final String categoryId = "2c43dbda-7d4d-46fb-b246-bec2bd348ca1"; - final String itemId = "7e46a698-080b-45e6-a529-2c196d00791c"; - - Menu menu = - new Menu(id.toString(), restaurantId, "name", "description", new ArrayList<>(), true); - Item item = new Item(itemId, "item name", "item description", 5.99d, true); - Category category = new Category(categoryId, "cat name", "cat description", List.of(item)); - menu.addOrUpdateCategory(category); - - return ResponseEntity.ok(menuMapper.toDto(menu)); + return ResponseEntity.ok(menuService.get(id, correlationId)); } @PutMapping(value = "/{id}") @@ -161,7 +113,7 @@ ResponseEntity updateMenu( @Valid @RequestBody UpdateMenuRequest body, @Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) { - return new ResponseEntity<>(new ResourceUpdatedResponse(UUID.randomUUID()), HttpStatus.OK); + return new ResponseEntity<>(menuService.update(body, correlationId), HttpStatus.OK); } @DeleteMapping(value = "/{id}") diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/api/v2/MenuControllerV2.java b/java/src/main/java/com/amido/stacks/workloads/menu/api/v2/MenuControllerV2.java index b898d1e7..a53e562a 100644 --- a/java/src/main/java/com/amido/stacks/workloads/menu/api/v2/MenuControllerV2.java +++ b/java/src/main/java/com/amido/stacks/workloads/menu/api/v2/MenuControllerV2.java @@ -2,15 +2,14 @@ import com.amido.stacks.core.api.annotations.ReadAPIResponses; import com.amido.stacks.workloads.menu.api.v1.dto.response.MenuDTO; -import com.amido.stacks.workloads.menu.domain.Menu; -import com.amido.stacks.workloads.menu.mappers.MenuMapper; +import com.amido.stacks.workloads.menu.service.v2.MenuServiceV2; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; -import java.util.ArrayList; import java.util.UUID; +import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -21,13 +20,10 @@ @RequestMapping(path = "/v2/menu", produces = MediaType.APPLICATION_JSON_VALUE + "; charset=utf-8") @RestController +@RequiredArgsConstructor public class MenuControllerV2 { - private final MenuMapper menuMapper; - - public MenuControllerV2(MenuMapper menuMapper) { - this.menuMapper = menuMapper; - } + private final MenuServiceV2 menuServiceV2; @GetMapping(value = "/{id}") @Operation( @@ -48,12 +44,6 @@ ResponseEntity getMenu( @PathVariable(name = "id") UUID id, @Parameter(hidden = true) @RequestAttribute("CorrelationId") String correlationId) { - String restaurantId = "3930ddff-82ce-4f7e-b910-b0709b276cf0"; - - Menu menu = - new Menu( - id.toString(), restaurantId, "0 Menu", "0 Menu Description", new ArrayList<>(), true); - - return ResponseEntity.ok(menuMapper.toDto(menu)); + return ResponseEntity.ok(menuServiceV2.get(id, correlationId)); } } diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/CategoryService.java b/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/CategoryService.java new file mode 100644 index 00000000..772ded52 --- /dev/null +++ b/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/CategoryService.java @@ -0,0 +1,24 @@ +package com.amido.stacks.workloads.menu.service.v1; + +import com.amido.stacks.core.api.dto.response.ResourceCreatedResponse; +import com.amido.stacks.core.api.dto.response.ResourceUpdatedResponse; +import com.amido.stacks.workloads.menu.api.v1.dto.request.CreateCategoryRequest; +import com.amido.stacks.workloads.menu.api.v1.dto.request.UpdateCategoryRequest; +import java.util.UUID; +import javax.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class CategoryService { + + public ResourceCreatedResponse create(@Valid CreateCategoryRequest body, String correlationId) { + return new ResourceCreatedResponse(UUID.randomUUID()); + } + + public ResourceUpdatedResponse update( + UUID menuId, UUID categoryId, @Valid UpdateCategoryRequest body, String correlationId) { + return new ResourceUpdatedResponse(UUID.randomUUID()); + } +} diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/ItemService.java b/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/ItemService.java new file mode 100644 index 00000000..46d25bce --- /dev/null +++ b/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/ItemService.java @@ -0,0 +1,23 @@ +package com.amido.stacks.workloads.menu.service.v1; + +import com.amido.stacks.core.api.dto.response.ResourceCreatedResponse; +import com.amido.stacks.core.api.dto.response.ResourceUpdatedResponse; +import com.amido.stacks.workloads.menu.api.v1.dto.request.CreateItemRequest; +import com.amido.stacks.workloads.menu.api.v1.dto.request.UpdateItemRequest; +import java.util.UUID; +import javax.validation.Valid; +import org.springframework.stereotype.Service; + +@Service +public class ItemService { + + public ResourceCreatedResponse create( + UUID menuId, UUID categoryId, @Valid CreateItemRequest body, String correlationId) { + return new ResourceCreatedResponse(UUID.randomUUID()); + } + + public ResourceUpdatedResponse update( + UUID menuId, UUID categoryId, @Valid UpdateItemRequest body, String correlationId) { + return new ResourceUpdatedResponse(UUID.randomUUID()); + } +} diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/MenuService.java b/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/MenuService.java new file mode 100644 index 00000000..36f57b67 --- /dev/null +++ b/java/src/main/java/com/amido/stacks/workloads/menu/service/v1/MenuService.java @@ -0,0 +1,84 @@ +package com.amido.stacks.workloads.menu.service.v1; + +import com.amido.stacks.core.api.dto.response.ResourceCreatedResponse; +import com.amido.stacks.core.api.dto.response.ResourceUpdatedResponse; +import com.amido.stacks.workloads.menu.api.v1.dto.request.CreateMenuRequest; +import com.amido.stacks.workloads.menu.api.v1.dto.request.UpdateMenuRequest; +import com.amido.stacks.workloads.menu.api.v1.dto.response.MenuDTO; +import com.amido.stacks.workloads.menu.api.v1.dto.response.SearchMenuResult; +import com.amido.stacks.workloads.menu.domain.Category; +import com.amido.stacks.workloads.menu.domain.Item; +import com.amido.stacks.workloads.menu.domain.Menu; +import com.amido.stacks.workloads.menu.mappers.MenuMapper; +import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.stream.Collectors; +import javax.validation.Valid; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class MenuService { + + @Getter private final MenuMapper menuMapper; + + private final SearchMenuResultItemMapper searchMenuResultItemMapper; + + public ResourceCreatedResponse create(@Valid CreateMenuRequest body, String correlationId) { + + return new ResourceCreatedResponse(UUID.randomUUID()); + } + + public SearchMenuResult search( + String searchTerm, UUID restaurantId, Integer pageSize, Integer pageNumber) { + + List menuList = new ArrayList<>(); + + final String menuId = "d5785e28-306b-4e23-add0-3f9092d395f8"; + + Menu mockMenu; + if (restaurantId == null) { + mockMenu = + new Menu( + menuId, + "58a1df85-6bdc-412a-a118-0f0e394c1342", + "name", + "description", + new ArrayList<>(), + true); + } else { + mockMenu = + new Menu(menuId, restaurantId.toString(), "name", "description", new ArrayList<>(), true); + } + + menuList.add(mockMenu); + + return new SearchMenuResult( + pageSize, + pageNumber, + menuList.stream().map(searchMenuResultItemMapper::toDto).collect(Collectors.toList())); + } + + public MenuDTO get(UUID id, String correlationId) { + + final String restaurantId = "58a1df85-6bdc-412a-a118-0f0e394c1342"; + final String categoryId = "2c43dbda-7d4d-46fb-b246-bec2bd348ca1"; + final String itemId = "7e46a698-080b-45e6-a529-2c196d00791c"; + + Menu menu = + new Menu(id.toString(), restaurantId, "name", "description", new ArrayList<>(), true); + Item item = new Item(itemId, "item name", "item description", 5.99d, true); + Category category = new Category(categoryId, "cat name", "cat description", List.of(item)); + menu.addOrUpdateCategory(category); + + return menuMapper.toDto(menu); + } + + public ResourceUpdatedResponse update(@Valid UpdateMenuRequest body, String correlationId) { + return new ResourceUpdatedResponse(UUID.randomUUID()); + } +} diff --git a/java/src/main/java/com/amido/stacks/workloads/menu/service/v2/MenuServiceV2.java b/java/src/main/java/com/amido/stacks/workloads/menu/service/v2/MenuServiceV2.java new file mode 100644 index 00000000..a1614641 --- /dev/null +++ b/java/src/main/java/com/amido/stacks/workloads/menu/service/v2/MenuServiceV2.java @@ -0,0 +1,31 @@ +package com.amido.stacks.workloads.menu.service.v2; + +import com.amido.stacks.workloads.menu.api.v1.dto.response.MenuDTO; +import com.amido.stacks.workloads.menu.domain.Menu; +import com.amido.stacks.workloads.menu.mappers.MenuMapper; +import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper; +import com.amido.stacks.workloads.menu.service.v1.MenuService; +import java.util.ArrayList; +import java.util.UUID; +import org.springframework.stereotype.Service; + +@Service +public class MenuServiceV2 extends MenuService { + + public MenuServiceV2( + MenuMapper menuMapper, SearchMenuResultItemMapper searchMenuResultItemMapper) { + super(menuMapper, searchMenuResultItemMapper); + } + + @Override + public MenuDTO get(UUID id, String correlationId) { + + String restaurantId = "3930ddff-82ce-4f7e-b910-b0709b276cf0"; + + Menu menu = + new Menu( + id.toString(), restaurantId, "0 Menu", "0 Menu Description", new ArrayList<>(), true); + + return getMenuMapper().toDto(menu); + } +}