@RequestMapping(value = "/{user}/addItem", method = RequestMethod.POST)
  public @ResponseBody Cart add(@PathVariable String user, @RequestBody Item item) {

    CartBO cartBO = cartBODao.getCart(user);
    if (cartBO == null) {
      cartBO = cartBODao.addCart(user);
    }
    item.setUser(user);
    item.setCartId(cartBO.getId());

    Product product = getProductsDao().getProduct(item.getProductId());

    item.setName(product.getName());

    Item dbItem = getItemDao().getItem(item);

    if (dbItem == null) {
      item.setTotal(new BigDecimal(product.getPrice().doubleValue() * item.getQuantity()));
      getItemDao().save(item);
    } else {
      item.setQuantity(dbItem.getQuantity() + item.getQuantity());
      item.setTotal(item.getTotal().add(dbItem.getTotal()));
      getItemDao().update(item);
    }

    return preparCart(item);
  }
  @RequestMapping(value = "/{user}/updateItem", method = RequestMethod.PUT)
  public @ResponseBody Cart update(@PathVariable String user, @RequestBody Item item) {
    item.setUser(user);
    CartBO cartBO = cartBODao.getCart(user);
    item.setCartId(cartBO.getId());

    Product product = getProductsDao().getProduct(item.getProductId());
    item.setTotal(new BigDecimal(product.getPrice().doubleValue() * item.getQuantity()));
    getItemDao().update(item);

    return preparCart(item);
  }