diff --git a/bookstore-api/.idea/workspace.xml b/bookstore-api/.idea/workspace.xml index 3befd7b..c92ac6e 100644 --- a/bookstore-api/.idea/workspace.xml +++ b/bookstore-api/.idea/workspace.xml @@ -152,7 +152,7 @@ - + @@ -1038,12 +1038,12 @@ - + - @@ -1067,7 +1067,7 @@ - + @@ -1556,7 +1556,7 @@ - + diff --git a/bookstore-api/src/main/java/com/bookstore/resource/ShoppingCartResource.java b/bookstore-api/src/main/java/com/bookstore/resource/ShoppingCartResource.java index 25c6e8d..3943dfc 100644 --- a/bookstore-api/src/main/java/com/bookstore/resource/ShoppingCartResource.java +++ b/bookstore-api/src/main/java/com/bookstore/resource/ShoppingCartResource.java @@ -12,10 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.security.Principal; import java.util.HashMap; @@ -84,4 +81,28 @@ public class ShoppingCartResource { return shoppingCart; } + + @RequestMapping("/removeItem") + public ResponseEntity removeItem(@RequestBody String id) { + cartItemService.removeCartItem(cartItemService.findById(Long.parseLong(id))); + + return new ResponseEntity("Cart Item Removed Successfully!", HttpStatus.OK); + + } + + @RequestMapping("/updateCartItem") + public ResponseEntity updateShoppingCart( + @RequestBody HashMap mapper + ) { + String cartItemId = mapper.get("cartItemId"); + String qty = mapper.get("qty"); + + CartItem cartItem = cartItemService.findById(Long.parseLong(cartItemId)); + cartItem.setQty(Integer.parseInt(qty)); + + cartItemService.updateCartItem(cartItem); + + return new ResponseEntity("Cart Updated Successfully!", HttpStatus.OK); + + } } diff --git a/bookstore-api/target/classes/com/bookstore/resource/ShoppingCartResource.class b/bookstore-api/target/classes/com/bookstore/resource/ShoppingCartResource.class index b24e8e5..32fbc0a 100644 Binary files a/bookstore-api/target/classes/com/bookstore/resource/ShoppingCartResource.class and b/bookstore-api/target/classes/com/bookstore/resource/ShoppingCartResource.class differ diff --git a/store-front/src/app/components/shopping-cart/shopping-cart.component.html b/store-front/src/app/components/shopping-cart/shopping-cart.component.html index 1c892bb..7bbd71d 100644 --- a/store-front/src/app/components/shopping-cart/shopping-cart.component.html +++ b/store-front/src/app/components/shopping-cart/shopping-cart.component.html @@ -39,16 +39,16 @@

- +
-

+

{{cartItem.book.title}}

In Stock

Only {{cartItem.book.inStockNumber}} In Stock

Product Unavailable

- delete + delete

${ + console.log(res.text()); + this.getCartItemList(); + }, + error=>{ + console.log(error.text()); + } + ); + } + + getCartItemList(){ this.cartService.getCartItemList().subscribe( res=>{ this.cartItemList = res.json(); @@ -35,6 +47,11 @@ export class ShoppingCartComponent implements OnInit { console.log(error.text()); } ); + } + + ngOnInit() { + this.getCartItemList(); + this.cartService.getShoppingCart().subscribe( res=>{ diff --git a/store-front/src/app/services/cart.service.ts b/store-front/src/app/services/cart.service.ts index 0aacfbc..15de943 100644 --- a/store-front/src/app/services/cart.service.ts +++ b/store-front/src/app/services/cart.service.ts @@ -37,4 +37,25 @@ export class CartService { return this.http.get(url, {headers : tokenHeader}); } + updateShoppingCart(cartItemId:number, qty:number) { + let url = AppConst.serverPath+"/cart/removeItem"; + let cartItemInfo = { + "cartItemId" : cartItemId, + "qty" : qty + } + let tokenHeader = new Headers ({ + 'x-auth-token' : localStorage.getItem("xAuthToken") + }); + return this.http.post(url, cartItemInfo, {headers : tokenHeader}); + } + + removeCartItem(id:number) { + let url = AppConst.serverPath+"/cart/removeItem"; + + let tokenHeader = new Headers ({ + 'x-auth-token' : localStorage.getItem("xAuthToken") + }); + return this.http.post(url, id, {headers : tokenHeader}); + } + }