Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
sdavis-amido committed Jul 7, 2022
1 parent 959cb80 commit 87992d5
Show file tree
Hide file tree
Showing 12 changed files with 959 additions and 678 deletions.
1,202 changes: 612 additions & 590 deletions java/pom.xml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,16 @@
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.DomainToDtoMapper;
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;

Expand All @@ -23,18 +25,13 @@ public class QueryMenuControllerImpl implements QueryMenuController {

Logger logger = LoggerFactory.getLogger(QueryMenuControllerImpl.class);

private DomainToDtoMapper mapper;
@Autowired private MenuMapper menuMapper;

public QueryMenuControllerImpl(DomainToDtoMapper mapper) {
this.mapper = mapper;
}
@Autowired private SearchMenuResultItemMapper searchMenuResultItemMapper;

@Override
public ResponseEntity<SearchMenuResult> searchMenu(
final String searchTerm,
final UUID restaurantId,
final Integer pageSize,
final Integer pageNumber) {
String searchTerm, UUID restaurantId, Integer pageSize, Integer pageNumber) {

List<Menu> menuList = new ArrayList<>();

Expand Down Expand Up @@ -62,12 +59,12 @@ public ResponseEntity<SearchMenuResult> searchMenu(
pageSize,
pageNumber,
menuList.stream()
.map(m -> mapper.toSearchMenuResultItem(m))
.map(m -> searchMenuResultItemMapper.toDto(m))
.collect(Collectors.toList())));
}

@Override
public ResponseEntity<MenuDTO> getMenu(final UUID id, final String correlationId) {
public ResponseEntity<MenuDTO> getMenu(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";
Expand All @@ -79,6 +76,6 @@ public ResponseEntity<MenuDTO> getMenu(final UUID id, final String correlationId
new Category(categoryId, "cat name", "cat description", Arrays.asList(item));
menu.addOrUpdateCategory(category);

return ResponseEntity.ok(mapper.toMenuDto(menu));
return ResponseEntity.ok(menuMapper.toDto(menu));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,17 @@
import com.amido.stacks.workloads.menu.api.v1.dto.response.MenuDTO;
import com.amido.stacks.workloads.menu.api.v2.QueryMenuControllerV2;
import com.amido.stacks.workloads.menu.domain.Menu;
import com.amido.stacks.workloads.menu.mappers.DomainToDtoMapper;
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
import java.util.ArrayList;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class QueryMenuControllerImplV2 implements QueryMenuControllerV2 {

private DomainToDtoMapper mapper;

public QueryMenuControllerImplV2(DomainToDtoMapper mapper) {
this.mapper = mapper;
}
@Autowired private MenuMapper menuMapper;

@Override
public ResponseEntity<MenuDTO> getMenu(UUID id, String correlationId) {
Expand All @@ -26,6 +23,6 @@ public ResponseEntity<MenuDTO> getMenu(UUID id, String correlationId) {
new Menu(
id.toString(), restaurantId, "0 Menu", "0 Menu Description", new ArrayList<>(), true);

return ResponseEntity.ok(mapper.toMenuDto(menu));
return ResponseEntity.ok(menuMapper.toDto(menu));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.amido.stacks.workloads.menu.mappers;

import com.amido.stacks.core.mapping.BaseMapper;
import com.amido.stacks.workloads.menu.api.v1.dto.response.CategoryDTO;
import com.amido.stacks.workloads.menu.domain.Category;
import org.mapstruct.Mapper;
import org.mapstruct.NullValueCheckStrategy;

@Mapper(
componentModel = "spring",
uses = {ItemMapper.class},
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface CategoryMapper extends BaseMapper<CategoryDTO, Category> {}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.amido.stacks.workloads.menu.mappers;

import com.amido.stacks.core.mapping.BaseMapper;
import com.amido.stacks.workloads.menu.api.v1.dto.response.ItemDTO;
import com.amido.stacks.workloads.menu.domain.Item;
import org.mapstruct.Mapper;
import org.mapstruct.NullValueCheckStrategy;

@Mapper(
componentModel = "spring",
uses = {},
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface ItemMapper extends BaseMapper<ItemDTO, Item> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.amido.stacks.workloads.menu.mappers;

import com.amido.stacks.core.mapping.BaseMapper;
import com.amido.stacks.core.mapping.MapperUtils;
import com.amido.stacks.workloads.menu.api.v1.dto.response.MenuDTO;
import com.amido.stacks.workloads.menu.domain.Menu;
import org.mapstruct.Mapper;
import org.mapstruct.NullValueCheckStrategy;

@Mapper(
componentModel = "spring",
uses = {MapperUtils.class, CategoryMapper.class},
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface MenuMapper extends BaseMapper<MenuDTO, Menu> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.amido.stacks.workloads.menu.mappers;

import com.amido.stacks.core.mapping.BaseMapper;
import com.amido.stacks.core.mapping.MapperUtils;
import com.amido.stacks.workloads.menu.api.v1.dto.response.SearchMenuResultItem;
import com.amido.stacks.workloads.menu.domain.Menu;
import org.mapstruct.Mapper;
import org.mapstruct.NullValueCheckStrategy;

@Mapper(
componentModel = "spring",
uses = {MapperUtils.class, CategoryMapper.class},
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface SearchMenuResultItemMapper extends BaseMapper<SearchMenuResultItem, Menu> {}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,14 @@
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.DomainToDtoMapper;
import com.amido.stacks.workloads.menu.mappers.CategoryMapper;
import com.amido.stacks.workloads.menu.mappers.CategoryMapperImpl;
import com.amido.stacks.workloads.menu.mappers.ItemMapper;
import com.amido.stacks.workloads.menu.mappers.ItemMapperImpl;
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
import com.amido.stacks.workloads.menu.mappers.MenuMapperImpl;
import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper;
import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapperImpl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
Expand All @@ -29,7 +36,18 @@
import org.springframework.http.HttpStatus;
import org.springframework.test.context.ActiveProfiles;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = {
MenuMapper.class,
MenuMapperImpl.class,
CategoryMapper.class,
CategoryMapperImpl.class,
ItemMapper.class,
ItemMapperImpl.class,
SearchMenuResultItemMapper.class,
SearchMenuResultItemMapperImpl.class
})
@EnableAutoConfiguration
@Tag("Integration")
@ActiveProfiles("test")
Expand All @@ -39,6 +57,14 @@ public class QueryMenuControllerImplTest {

@Autowired private TestRestTemplate testRestTemplate;

@Autowired private MenuMapper menuMapper;

@Autowired private CategoryMapper categoryMapper;

@Autowired private ItemMapper itemMapper;

@Autowired private SearchMenuResultItemMapper searchMenuResultItemMapper;

final int DEFAULT_PAGE_NUMBER = 1;
final int DEFAULT_PAGE_SIZE = 20;

Expand Down Expand Up @@ -80,7 +106,7 @@ public void listMenusFilteredByRestaurantId() {

List<SearchMenuResultItem> expectedMenuList =
matching.stream()
.map(DomainToDtoMapper::toSearchMenuResultItem)
.map(m -> searchMenuResultItemMapper.toDto(m))
.collect(Collectors.toList());

SearchMenuResult expectedResponse =
Expand Down Expand Up @@ -111,7 +137,7 @@ public void getMenuById() {
new Category(categoryId, "cat name", "cat description", Arrays.asList(item));
menu.addOrUpdateCategory(category);

MenuDTO expectedResponse = DomainToDtoMapper.toMenuDto(menu);
MenuDTO expectedResponse = menuMapper.toDto(menu);

// When
var response =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,14 @@

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.DomainToDtoMapper;
import com.amido.stacks.workloads.menu.mappers.CategoryMapper;
import com.amido.stacks.workloads.menu.mappers.CategoryMapperImpl;
import com.amido.stacks.workloads.menu.mappers.ItemMapper;
import com.amido.stacks.workloads.menu.mappers.ItemMapperImpl;
import com.amido.stacks.workloads.menu.mappers.MenuMapper;
import com.amido.stacks.workloads.menu.mappers.MenuMapperImpl;
import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapper;
import com.amido.stacks.workloads.menu.mappers.SearchMenuResultItemMapperImpl;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -16,7 +23,18 @@
import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.test.context.ActiveProfiles;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = {
MenuMapper.class,
MenuMapperImpl.class,
CategoryMapper.class,
CategoryMapperImpl.class,
ItemMapper.class,
ItemMapperImpl.class,
SearchMenuResultItemMapper.class,
SearchMenuResultItemMapperImpl.class
})
@EnableAutoConfiguration
@Tag("Integration")
@ActiveProfiles("test")
Expand All @@ -28,13 +46,15 @@ class QueryMenuControllerImplV2Test {

@Autowired private TestRestTemplate testRestTemplate;

@Autowired private MenuMapper menuMapper;

@Test
void getMenuById() {
// Given
Menu menu = createMenu(0);
String restaurantId = "3930ddff-82ce-4f7e-b910-b0709b276cf0";
menu.setRestaurantId(restaurantId);
MenuDTO expectedResponse = DomainToDtoMapper.toMenuDto(menu);
MenuDTO expectedResponse = menuMapper.toDto(menu);

// When
var response =
Expand Down
Loading

0 comments on commit 87992d5

Please sign in to comment.