I have to call a delete API from another service which required a CartRequestDTO
to perform the operation. Which REST template method can I use to send the CartRequestDTO
to call the service.
private String carturl="http://localhost:8091/cart";
public ResponseEntity deleteproductincart(@RequestBody CartRequestDTO cartRequestDTO){
String deleteurl=carturl+"/deleteproductincart";
RestTemplate restTemplate= restTemplateBuilder.build();
restTemplate.exchange(deleteurl,HttpMethod.DELETE,null,cartRequestDTO);
return new ResponseEntity(HttpStatus.OK);
}
I am trying to call this API http://localhost:8091/cart/deleteproductincart
which is running separately from the above service
@DeleteMapping("/deleteproductincart")
public ResponseEntity deleteproductincart(@RequestBody CartRequestDTO cartRequestDTO){
String validateuserurl="http://localhost:8090/users/validateuserandtoken/" + cartRequestDTO.getUser_Id()
+"/"+cartRequestDTO.getToken();
return cartService.deleteproductincart(cartRequestDTO);
}
Service class:
@Transactional
public ResponseEntity deleteproductincart(CartRequestDTO cartRequestDTO) {
Cart cart= cartRepository.findbyuserIdandproductname(cartRequestDTO.getUser_Id(),cartRequestDTO.getProductname());
Product product= productRepository.findbyname(cartRequestDTO.getProductname());
long ans=cart.getQuantity()-cartRequestDTO.getQuantity();
if(ans==0){
productRepository.deletbycartid(cart.getId());
cartRepository.delete(cart);
return new ResponseEntity(HttpStatus.OK);
}
cart.setQuantity(ans);
cart.setTotalcost(cart.getTotalcost()- cartRequestDTO.getQuantity()*product.getPrice());
cart.setAddedat(new Date());
cartRepository.save(cart);
return new ResponseEntity(HttpStatus.OK);
}
@Getter
@Setter
public class CartRequestDTO {
private long User_Id;
private String Productname;
private long quantity;
private String token;
}
I tried using exchange but stuck here not sure how to proceed.