Class DefaultCartNotificationService
- java.lang.Object
-
- com.broadleafcommerce.cart.service.messaging.DefaultCartNotificationService
-
- All Implemented Interfaces:
CartNotificationService
public class DefaultCartNotificationService extends Object implements CartNotificationService
Default implementation forCartNotificationService
.- Author:
- Dima Myroniuk (dmyroniuk)
-
-
Field Summary
Fields Modifier and Type Field Description static String
CART_ID_REQUIRED
static String
CHECKOUT_WORKFLOW_ERRORS
The key to theJpaCart.getInternalAttributes()
containing checkout workflow errors
-
Constructor Summary
Constructors Constructor Description DefaultCartNotificationService(CartRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.common.messaging.notification.NotificationStateService notificationStateService, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager, CartNotificationRepository cartNotificationRepository, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
convertCartRejectionEventToJson(@NonNull CartRejectionEvent event)
protected CartNotificationRepository
getCartNotificationRepository()
protected com.broadleafcommerce.common.messaging.notification.NotificationManager
getNotificationManager()
protected com.broadleafcommerce.common.messaging.notification.NotificationStateService
getNotificationStateService()
protected com.fasterxml.jackson.databind.ObjectMapper
getObjectMapper()
protected CartRepository<com.broadleafcommerce.data.tracking.core.Trackable>
getRepository()
protected com.broadleafcommerce.common.extension.TypeFactory
getTypeFactory()
void
sendCartApprovalRequestEvent(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, com.broadleafcommerce.cart.client.domain.CartActionAudit audit, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Sends cart approval requested event.void
sendCartApprovalRequestEvent(@NonNull CartApprovalRequestEvent event, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Sends cart approval request event.void
sendCartPendingPaymentFailedEventUri(@NonNull CartPendingPaymentFailedEvent event, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Sends cart pending payment failed event.void
sendCartRejectionEvent(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, com.broadleafcommerce.cart.client.domain.CartActionAudit audit, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Sends cart rejection event.void
sendCartRejectionEvent(@NonNull CartRejectionEvent event, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Sends cart rejection event.void
sendCheckoutCompletionEvent(@NonNull CheckoutCompletionEvent event, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Sends checkout completion event.protected void
sendEvent(com.broadleafcommerce.data.tracking.core.Trackable cart, String messageJson, String messageName, String messageType)
void
sendRollbackEvent(@NonNull CheckoutRollbackEvent event, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Sends rollback event to process the error during checkout.void
setTypeFactory(com.broadleafcommerce.common.extension.TypeFactory typeFactory)
protected void
validateCartApprovalRequestEvent(@NonNull CartApprovalRequestEvent event)
protected void
validateCartFields(@NonNull com.broadleafcommerce.data.tracking.core.Trackable cart, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Hook point to validate the given cart's fields.protected void
validateCartHasPendingPaymentFailedStatus(@NonNull JpaCart cart)
protected void
validateCartHasWorkflowErrorForRequestId(@NonNull com.broadleafcommerce.data.tracking.core.Trackable cart, @NonNull String requestId)
Validates if the checkout rollback event can be resent for the given cart.protected void
validateCartIsRejected(@NonNull com.broadleafcommerce.data.tracking.core.Trackable cart)
protected void
validateCartIsSubmitted(@NonNull com.broadleafcommerce.data.tracking.core.Trackable cart)
protected void
validateCartPendingPaymentFailedEvent(@NonNull CartPendingPaymentFailedEvent event)
protected void
validateCartRejectionEvent(@NonNull CartRejectionEvent event)
protected void
validateCartRequiresApproval(@NonNull com.broadleafcommerce.data.tracking.core.Trackable cart)
protected void
validateCheckoutCompletionEvent(@NonNull CheckoutCompletionEvent event)
protected void
validateCheckoutRollbackEvent(@NonNull CheckoutRollbackEvent event)
-
-
-
Field Detail
-
CHECKOUT_WORKFLOW_ERRORS
public static final String CHECKOUT_WORKFLOW_ERRORS
The key to theJpaCart.getInternalAttributes()
containing checkout workflow errors- See Also:
- Constant Field Values
-
CART_ID_REQUIRED
public static final String CART_ID_REQUIRED
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DefaultCartNotificationService
public DefaultCartNotificationService(CartRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.common.messaging.notification.NotificationStateService notificationStateService, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager, CartNotificationRepository cartNotificationRepository, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
-
Method Detail
-
sendRollbackEvent
public void sendRollbackEvent(@NonNull @NonNull CheckoutRollbackEvent event, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:CartNotificationService
Sends rollback event to process the error during checkout. It uses durable sending to guarantee delivery.- Specified by:
sendRollbackEvent
in interfaceCartNotificationService
- Parameters:
event
- the message payloadcontextInfo
- context information around sandbox and multitenant state- See Also:
CheckoutRollbackEventProducer
-
validateCheckoutRollbackEvent
protected void validateCheckoutRollbackEvent(@NonNull @NonNull CheckoutRollbackEvent event)
-
validateCartHasWorkflowErrorForRequestId
protected void validateCartHasWorkflowErrorForRequestId(@NonNull @NonNull com.broadleafcommerce.data.tracking.core.Trackable cart, @NonNull @NonNull String requestId)
Validates if the checkout rollback event can be resent for the given cart.- Parameters:
cart
- the cart used to validate if the event can be resentrequestId
- the checkout request id
-
sendCheckoutCompletionEvent
public void sendCheckoutCompletionEvent(@NonNull @NonNull CheckoutCompletionEvent event, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:CartNotificationService
Sends checkout completion event. It uses durable sending to guarantee delivery.- Specified by:
sendCheckoutCompletionEvent
in interfaceCartNotificationService
- Parameters:
event
- the message payloadcontextInfo
- context information around sandbox and multitenant state- See Also:
CheckoutCompletionProducer
-
sendCartRejectionEvent
public void sendCartRejectionEvent(@NonNull @NonNull CartRejectionEvent event, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:CartNotificationService
Sends cart rejection event. It uses durable sending to guarantee delivery.- Specified by:
sendCartRejectionEvent
in interfaceCartNotificationService
- Parameters:
event
- the message payloadcontextInfo
- context information around sandbox and multitenant state- See Also:
CartRejectionProducer
-
sendCartRejectionEvent
public void sendCartRejectionEvent(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.cart.client.domain.CartActionAudit audit, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:CartNotificationService
Sends cart rejection event. It uses durable sending to guarantee delivery.- Specified by:
sendCartRejectionEvent
in interfaceCartNotificationService
- Parameters:
cart
- The updatedCart
audit
- TheCartActionAudit
for the updatecontextInfo
- context information around sandbox and multitenant state- See Also:
CartRejectionProducer
-
sendCartApprovalRequestEvent
public void sendCartApprovalRequestEvent(@NonNull @NonNull CartApprovalRequestEvent event, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:CartNotificationService
Sends cart approval request event. It uses durable sending to guarantee delivery.- Specified by:
sendCartApprovalRequestEvent
in interfaceCartNotificationService
- Parameters:
event
- the message payloadcontextInfo
- context information around sandbox and multitenant state- See Also:
CartRejectionProducer
-
sendCartApprovalRequestEvent
public void sendCartApprovalRequestEvent(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.cart.client.domain.CartActionAudit audit, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:CartNotificationService
Sends cart approval requested event. It uses durable sending to guarantee delivery.- Specified by:
sendCartApprovalRequestEvent
in interfaceCartNotificationService
- Parameters:
cart
- The updatedCart
audit
- TheCartActionAudit
for the updatecontextInfo
- context information around sandbox and multitenant state- See Also:
CartApprovalRequestProducer
-
convertCartRejectionEventToJson
protected String convertCartRejectionEventToJson(@NonNull @NonNull CartRejectionEvent event)
-
sendCartPendingPaymentFailedEventUri
public void sendCartPendingPaymentFailedEventUri(@NonNull @NonNull CartPendingPaymentFailedEvent event, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:CartNotificationService
Sends cart pending payment failed event. It uses durable sending to guarantee delivery.- Specified by:
sendCartPendingPaymentFailedEventUri
in interfaceCartNotificationService
- Parameters:
event
- the message payloadcontextInfo
- context information around sandbox and multitenant state- See Also:
CartPendingPaymentFailedProducer
-
validateCheckoutCompletionEvent
protected void validateCheckoutCompletionEvent(@NonNull @NonNull CheckoutCompletionEvent event)
-
validateCartFields
protected void validateCartFields(@NonNull @NonNull com.broadleafcommerce.data.tracking.core.Trackable cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Hook point to validate the given cart's fields.Validates that the cart's order number exist by default.
- Parameters:
cart
- the cart to validate againstcontextInfo
- context information related to multitenancy
-
validateCartRejectionEvent
protected void validateCartRejectionEvent(@NonNull @NonNull CartRejectionEvent event)
-
validateCartApprovalRequestEvent
protected void validateCartApprovalRequestEvent(@NonNull @NonNull CartApprovalRequestEvent event)
-
validateCartPendingPaymentFailedEvent
protected void validateCartPendingPaymentFailedEvent(@NonNull @NonNull CartPendingPaymentFailedEvent event)
-
sendEvent
protected void sendEvent(com.broadleafcommerce.data.tracking.core.Trackable cart, String messageJson, String messageName, String messageType)
-
validateCartIsSubmitted
protected void validateCartIsSubmitted(@NonNull @NonNull com.broadleafcommerce.data.tracking.core.Trackable cart)
-
validateCartIsRejected
protected void validateCartIsRejected(@NonNull @NonNull com.broadleafcommerce.data.tracking.core.Trackable cart)
-
validateCartRequiresApproval
protected void validateCartRequiresApproval(@NonNull @NonNull com.broadleafcommerce.data.tracking.core.Trackable cart)
-
validateCartHasPendingPaymentFailedStatus
protected void validateCartHasPendingPaymentFailedStatus(@NonNull @NonNull JpaCart cart)
-
getRepository
protected CartRepository<com.broadleafcommerce.data.tracking.core.Trackable> getRepository()
-
getNotificationStateService
protected com.broadleafcommerce.common.messaging.notification.NotificationStateService getNotificationStateService()
-
getNotificationManager
protected com.broadleafcommerce.common.messaging.notification.NotificationManager getNotificationManager()
-
getCartNotificationRepository
protected CartNotificationRepository getCartNotificationRepository()
-
getObjectMapper
protected com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
-
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-
setTypeFactory
@Autowired public void setTypeFactory(com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-