package com.yummynoodlebar.web.controller; import com.yummynoodlebar.core.services.MenuService; import com.yummynoodlebar.events.menu.AllMenuItemsEvent; import com.yummynoodlebar.events.menu.MenuItemDetails; import com.yummynoodlebar.events.menu.RequestAllMenuItemsEvent; import com.yummynoodlebar.web.domain.Basket; import com.yummynoodlebar.web.domain.MenuItem; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import java.util.ArrayList; import java.util.List; @Controller @RequestMapping("/") public class SiteController { private static final Logger LOG = LoggerFactory.getLogger(SiteController.class); @Autowired private MenuService menuService; // {!begin inject} @Autowired private Basket basket; // {!end inject} // {!begin method} @RequestMapping(method = RequestMethod.GET) public String getCurrentMenu(Model model) { LOG.debug("Yummy MenuItemDetails to home view"); model.addAttribute("menuItems",getMenuItems(menuService.requestAllMenuItems(new RequestAllMenuItemsEvent()))); return "/home"; } // {!end method} private List<MenuItem> getMenuItems(AllMenuItemsEvent requestAllMenuItems) { List<MenuItem> menuDetails = new ArrayList<MenuItem>(); for (MenuItemDetails menuItemDetails : requestAllMenuItems.getMenuItemDetails()) { menuDetails.add(MenuItem.fromMenuDetails(menuItemDetails)); } return menuDetails; } // {!begin model} @ModelAttribute("basket") private Basket getBasket() { return basket; } // {!end model} }