Class CartEndpoint

java.lang.Object
com.broadleafcommerce.cart.web.endpoint.CartEndpoint

@FrameworkRestController @FrameworkMapping @DataRouteByExample(com.broadleafcommerce.cart.client.domain.Cart.class) public class CartEndpoint extends Object
Author:
Chad Harchar (charchar), Nathan Moore (nathandmoore)
  • Constructor Details

    • CartEndpoint

      public CartEndpoint(CartService<com.broadleafcommerce.cart.client.domain.Cart> cartService, CartRequestValidator<com.broadleafcommerce.cart.client.domain.Cart> cartRequestValidator, CartItemRequestValidator<com.broadleafcommerce.cart.client.domain.CartItem> cartItemRequestValidator)
  • Method Details

    • readAllCarts

      @Policy(permissionRoots="CART") @FrameworkGetMapping("/carts") public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCarts(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, cz.jirutka.rsql.parser.ast.Node filters, @PageableDefault(size=50,sort="createDate",direction=DESC) org.springframework.data.domain.Pageable page)
    • readAllCartsForCustomer

      @Deprecated(since="1.8.0", forRemoval=true) public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCartsForCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @RequestParam String customerId, @PageableDefault(size=50,sort="createDate",direction=DESC) org.springframework.data.domain.Pageable page)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • readAllCartsForCustomer

      @Policy(permissionRoots="CART") @FrameworkGetMapping(value="/carts", params="customerId") public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCartsForCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @RequestParam String customerId, @RequestParam(required=false) String accountId, @PageableDefault(size=50,sort="createDate",direction=DESC) org.springframework.data.domain.Pageable page)
    • readAllCartsForCustomer

      @Policy(permissionRoots="CART") @FrameworkGetMapping(value="/carts", params={"customerId","cq"}) public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCartsForCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @RequestParam String customerId, @RequestParam(required=false) String accountId, @PageableDefault(size=50,sort="createDate",direction=DESC) org.springframework.data.domain.Pageable page, cz.jirutka.rsql.parser.ast.Node filters)
    • readAllCartsByStatusesForCustomer

      @Policy(permissionRoots="CART") @FrameworkGetMapping(value="/carts", params={"statuses","customerId"}) public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCartsByStatusesForCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @RequestParam Set<String> statuses, @RequestParam String customerId, @RequestParam(required=false) String accountId, @PageableDefault(size=50,sort="createDate",direction=DESC) org.springframework.data.domain.Pageable page)
    • readHistoricalCartsForCustomer

      @Policy(permissionRoots="CART") @FrameworkGetMapping(value="/carts", params={"customerId","historical=true"}) public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readHistoricalCartsForCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @RequestParam String customerId, @RequestParam(required=false) @DateTimeFormat(iso=DATE_TIME) Date startDate, @RequestParam(required=false) @DateTimeFormat(iso=DATE_TIME) Date endDate, @PageableDefault(size=50,sort="submitDate",direction=DESC) org.springframework.data.domain.Pageable page)
    • readHistoricalCartForAnonymousCustomer

      @Policy(permissionRoots="CART") @FrameworkGetMapping(value="/cart", params={"emailAddress","orderNumber","historical=true"}) public Optional<com.broadleafcommerce.cart.client.domain.Cart> readHistoricalCartForAnonymousCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @RequestParam String emailAddress, @RequestParam String orderNumber)
    • readCartByOrderNumber

      @Policy(permissionRoots="CART") @FrameworkGetMapping(value="/cart", params={"customerId","orderNumber"}) public Optional<com.broadleafcommerce.cart.client.domain.Cart> readCartByOrderNumber(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @RequestParam String customerId, @RequestParam String orderNumber)
    • readCartForAnonymousCustomer

      @Policy(permissionRoots="CART") @FrameworkGetMapping(value="/carts/{cartId}", params={"emailAddress","allowedStatuses"}) public Optional<com.broadleafcommerce.cart.client.domain.Cart> readCartForAnonymousCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @PathVariable String cartId, @RequestParam String emailAddress, @RequestParam Set<String> allowedStatuses)
    • readCartForCustomer

      @Policy(permissionRoots="CART") @FrameworkGetMapping(value="/carts/{cartId}", params={"customerId","allowedStatuses"}) public Optional<com.broadleafcommerce.cart.client.domain.Cart> readCartForCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @PathVariable String cartId, @RequestParam String customerId, @RequestParam Set<String> allowedStatuses)
    • readCartInStatusForCustomer

      @Deprecated(since="1.8.0", forRemoval=true) public Optional<com.broadleafcommerce.cart.client.domain.Cart> readCartInStatusForCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @RequestParam String customerId, @RequestParam String status)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • readCartInStatusForCustomer

      @Policy(permissionRoots="CART") @FrameworkGetMapping(value="/cart", params={"customerId","status"}) public Optional<com.broadleafcommerce.cart.client.domain.Cart> readCartInStatusForCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @RequestParam String customerId, @RequestParam(required=false) String accountId, @RequestParam String status)
    • readCartByStatusAndNameForCustomer

      @Policy(permissionRoots="CART") @FrameworkGetMapping(value="/cart", params={"customerId","status","name"}) public Optional<com.broadleafcommerce.cart.client.domain.Cart> readCartByStatusAndNameForCustomer(@ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context, @RequestParam String customerId, @RequestParam(required=false) String accountId, @RequestParam String status, @RequestParam(required=false) String name)
    • readCart

      @Policy(permissionRoots="CART") @FrameworkGetMapping("/carts/{id}") public com.broadleafcommerce.cart.client.domain.Cart readCart(@PathVariable("id") String id, @ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • readAllCartsMatchingTenantByStatus

      @Policy(permissionRoots="TENANT_CART") @FrameworkGetMapping("/tenant-carts") public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCartsMatchingTenantByStatus(@RequestParam String status, @PageableDefault(size=50) org.springframework.data.domain.Pageable page, @ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • updateCartsMatchingTenantStatus

      @Policy(permissionRoots="TENANT_CART") @FrameworkPostMapping("/tenant-carts/update-status") public List<com.broadleafcommerce.cart.client.domain.Cart> updateCartsMatchingTenantStatus(@RequestParam List<String> cartIds, @RequestParam String status, @ContextOperation(UPDATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • createCart

      @Policy(permissionRoots="CART") @FrameworkPostMapping("/carts") public com.broadleafcommerce.cart.client.domain.Cart createCart(@RequestBody com.broadleafcommerce.cart.client.domain.Cart cart, @ContextOperation(CREATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • updateCart

      @Policy(permissionRoots="CART") @FrameworkPatchMapping("/carts/{id}") @Deprecated(since="1.8.0", forRemoval=true) public com.broadleafcommerce.cart.client.domain.Cart updateCart(@PathVariable("id") String id, @RequestBody com.broadleafcommerce.cart.client.domain.Cart req, @ContextOperation(UPDATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • updateCartWithRequest

      @Policy(permissionRoots="CART") @FrameworkPatchMapping(value="/carts/{id}", params="withUpdateRequest=true") public com.broadleafcommerce.cart.client.domain.Cart updateCartWithRequest(@PathVariable("id") String id, @RequestBody UpdateCartRequest req, @ContextOperation(UPDATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • replaceCart

      @Policy(permissionRoots="CART") @FrameworkPutMapping("/carts/{id}") @Deprecated(since="1.8.0", forRemoval=true) public com.broadleafcommerce.cart.client.domain.Cart replaceCart(@PathVariable("id") String id, @RequestBody com.broadleafcommerce.cart.client.domain.Cart req, @ContextOperation(UPDATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • replaceCartWithRequest

      @Policy(permissionRoots="CART") @FrameworkPutMapping(value="/carts/{id}", params="withUpdateRequest=true") public com.broadleafcommerce.cart.client.domain.Cart replaceCartWithRequest(@PathVariable("id") String id, @RequestBody UpdateCartRequest req, @ContextOperation(UPDATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • deleteCart

      @Policy(permissionRoots="CART") @FrameworkDeleteMapping("/carts/{id}") public void deleteCart(@PathVariable("id") String id, @ContextOperation(DELETE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • readAllCartItems

      @Policy(permissionRoots="CART") @FrameworkGetMapping("/carts/{cartId}/cart-items") public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.CartItem> readAllCartItems(@PathVariable("cartId") String cartId, @ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • createCartItem

      @Policy(permissionRoots="CART") @FrameworkPostMapping("/carts/{cartId}/cart-items") public com.broadleafcommerce.cart.client.domain.CartItem createCartItem(@PathVariable("cartId") String cartId, @RequestBody com.broadleafcommerce.cart.client.domain.CartItem cartItem, @ContextOperation(CREATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • readCartItem

      @Policy(permissionRoots="CART") @FrameworkGetMapping("/carts/{cartId}/cart-items/{id}") public com.broadleafcommerce.cart.client.domain.CartItem readCartItem(@PathVariable("cartId") String cartId, @PathVariable("id") String id, @ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • updateCartItem

      @Policy(permissionRoots="CART") @FrameworkPatchMapping("/carts/{cartId}/cart-items/{id}") public com.broadleafcommerce.cart.client.domain.CartItem updateCartItem(@PathVariable("cartId") String cartId, @PathVariable("id") String id, @RequestBody com.broadleafcommerce.cart.client.domain.CartItem cartItem, @ContextOperation(UPDATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • replaceCartItem

      @Policy(permissionRoots="CART") @FrameworkPutMapping("/carts/{cartId}/cart-items/{id}") public com.broadleafcommerce.cart.client.domain.CartItem replaceCartItem(@PathVariable("cartId") String cartId, @PathVariable("id") String id, @RequestBody com.broadleafcommerce.cart.client.domain.CartItem cartItem, @ContextOperation(UPDATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • deleteCartItem

      @Policy(permissionRoots="CART") @FrameworkDeleteMapping("/carts/{cartId}/cart-items/{itemId}") public void deleteCartItem(@PathVariable("cartId") String cartId, @PathVariable("itemId") String itemId, @ContextOperation(DELETE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • readFulfillmentGroupsByCartId

      @Policy(permissionRoots="CART") @FrameworkGetMapping("/carts/{cartId}/fulfillment-groups") public List<com.broadleafcommerce.cart.client.domain.FulfillmentGroup> readFulfillmentGroupsByCartId(@PathVariable String cartId, @ContextOperation(READ) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • sendRollbackEvent

      @Policy(permissionRoots="SEND_ROLLBACK_EVENT", operationTypes=UPDATE) @FrameworkPostMapping("/carts/send-rollback-event") public void sendRollbackEvent(@RequestBody CheckoutRollbackEvent event)
    • sendCheckoutCompletionEvent

      @Policy(permissionRoots="SEND_CHECKOUT_COMPLETION_EVENT", operationTypes=UPDATE) @FrameworkPostMapping("/carts/send-checkout-completion-event") public void sendCheckoutCompletionEvent(@RequestBody CheckoutCompletionEvent event)
    • sendExternalPaymentTransactionCartFinalizationEvent

      @Policy(permissionRoots="SEND_EXTERNAL_PAYMENT_TRANSACTION_CART_FINALIZATION_EVENT", operationTypes=UPDATE) @FrameworkPostMapping("/carts/send-external-payment-transaction-cart-finalization-event") public void sendExternalPaymentTransactionCartFinalizationEvent(@RequestBody ExternalPaymentTransactionCartFinalizationEvent event)
    • sendCartRejectionEvent

      @Deprecated(forRemoval=true, since="1.8.2") @Policy(permissionRoots="SEND_CART_REJECTION_EVENT", operationTypes=UPDATE) @FrameworkPostMapping("/carts/send-cart-rejection-event") public void sendCartRejectionEvent(@RequestBody CartRejectionEvent event)
      Deprecated, for removal: This API element is subject to removal in a future version.
      The CartRejectionEvent is now sent in response to the update-cart request instead of requiring a separate request.
    • sendCartFailedPendingPaymentEvent

      @Policy(permissionRoots="SEND_CART_PENDING_PAYMENT_FAILED_EVENT", operationTypes=UPDATE) @FrameworkPostMapping("/carts/send-cart-pending-payment-failed-event") public void sendCartFailedPendingPaymentEvent(@RequestBody CartPendingPaymentFailedEvent event)
    • sendCartAwaitingPaymentResultsEvent

      @Policy(permissionRoots="SEND_CART_AWAITING_PAYMENT_RESULTS_EVENT", operationTypes=UPDATE) @FrameworkPostMapping("/carts/send-cart-awaiting-payment-results-event") public void sendCartAwaitingPaymentResultsEvent(@RequestBody CartAwaitingPaymentResultsEvent event)
    • sendCartFailedPendingPaymentEvent

      @Deprecated(since="1.8.1", forRemoval=true) @Policy(permissionRoots="SEND_CART_PENDING_PAYMENT_FAILED_EVENT") @FrameworkPostMapping("/carts/{cartId}/send-cart-pending-payment-failed-event") public void sendCartFailedPendingPaymentEvent(@PathVariable("cartId") String cartId, @RequestBody CartPendingPaymentFailedEvent event, @ContextOperation(UPDATE) com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • prepareCartFromItemRequest

      protected void prepareCartFromItemRequest(com.broadleafcommerce.cart.client.domain.Cart loadedCart, com.broadleafcommerce.cart.client.domain.CartItem requestedItem)
    • findCartItem

      protected com.broadleafcommerce.cart.client.domain.CartItem findCartItem(com.broadleafcommerce.cart.client.domain.Cart cart, String cartItemId)
      Finds a cart item by its ID on a cart.
      Parameters:
      cart - the cart to search through the items of
      cartItemId - the ID of the cart item to search for
      Returns:
      the cart item with the matching ID
      Throws:
      com.broadleafcommerce.data.tracking.core.exception.EntityMissingException - when no such item exists
    • validateTenantOnlyOperation

      protected void validateTenantOnlyOperation(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Validates that the given ContextInfo is a tenant only operation.

      This is used to ensure an operation can only be performed by tenant context.

      Parameters:
      contextInfo - the ContextInfo to validate against
      Throws:
      com.broadleafcommerce.data.tracking.core.exception.EntityMissingException - if the given ContextInfo is not a tenant-only operation
    • getCartService

      protected CartService<com.broadleafcommerce.cart.client.domain.Cart> getCartService()
    • getCartRequestValidator

      protected CartRequestValidator<com.broadleafcommerce.cart.client.domain.Cart> getCartRequestValidator()
    • getCartItemRequestValidator

      protected CartItemRequestValidator<com.broadleafcommerce.cart.client.domain.CartItem> getCartItemRequestValidator()
    • getPolicyUtils

      @Nullable protected com.broadleafcommerce.data.tracking.core.policy.trackable.TrackablePolicyUtils getPolicyUtils()
    • setPolicyUtils

      @Autowired(required=false) public void setPolicyUtils(@Nullable com.broadleafcommerce.data.tracking.core.policy.trackable.TrackablePolicyUtils policyUtils)
    • setCartNotificationService

      @Autowired public void setCartNotificationService(CartNotificationService cartNotificationService)
    • getCartNotificationService

      protected CartNotificationService getCartNotificationService()
    • getCartActionAuditService

      protected CartActionAuditService<com.broadleafcommerce.cart.client.domain.CartActionAudit> getCartActionAuditService()
    • setCartActionAuditService

      @Autowired public void setCartActionAuditService(CartActionAuditService<com.broadleafcommerce.cart.client.domain.CartActionAudit> cartActionAuditService)
    • getCartHydrationService

      protected CartHydrationService getCartHydrationService()
    • setCartHydrationService

      @Autowired public void setCartHydrationService(CartHydrationService cartHydrationService)
    • getCartActionAuditRequestValidator

      @Deprecated protected CartActionAuditRequestValidator<com.broadleafcommerce.cart.client.domain.CartActionAudit> getCartActionAuditRequestValidator()
      Deprecated.
      No longer used from the endpoint. It is used from the CartActionAuditService instead.
    • setCartActionAuditRequestValidator

      @Deprecated @Autowired public void setCartActionAuditRequestValidator(CartActionAuditRequestValidator<com.broadleafcommerce.cart.client.domain.CartActionAudit> cartActionAuditRequestValidator)
      Deprecated.
      No longer used from the endpoint. It is used from the CartActionAuditService instead.