Interface ModifySubscriptionHandler
- All Known Implementing Classes:
AbstractGradeChangeSubscriptionModificationHandler,AbstractModifySubscriptionHandler,ChangeSubscriptionAutoRenewalHandler,InitiateCancelSubscriptionHandler,InitiateDowngradeSubscriptionHandler,InitiateEditSubscriptionHandler,InitiateUpgradeSubscriptionHandler
public interface ModifySubscriptionHandler
Represents a component responsible for handling business logic related to some type of
modification performed upon a
Subscription such as upgrade, downgrade, cancel, etc. Each
handler should handle a discrete action, see DefaultSubscriptionActionType.- Author:
- Nathan Moore (nathandmoore)
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionbooleancanHandle(ModifySubscriptionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines whether the handler can handle theModifySubscriptionRequest.handle(ModifySubscriptionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Handles the actual modification process for theModifySubscriptionRequest, including validating the request payload and the user's permission.
-
Method Details
-
canHandle
boolean canHandle(ModifySubscriptionRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines whether the handler can handle theModifySubscriptionRequest.- Parameters:
request- The incoming request to modify aSubscriptioncontextInfo- Additional sandbox and multitenant info- Returns:
- Whether this handler can handle the
ModifySubscriptionRequest.
-
handle
ModifySubscriptionResponse handle(ModifySubscriptionRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Handles the actual modification process for theModifySubscriptionRequest, including validating the request payload and the user's permission.- Parameters:
request- The incoming request to modify aSubscriptioncontextInfo- Additional sandbox and multitenant info- Returns:
- The
ModifySubscriptionResponsethat results from the modification. - Throws:
InsufficientSubscriptionAccessException- if the user does not have access to the subscriptioncom.broadleafcommerce.common.error.validation.ValidationException- if the request is invalid due to missing or incorrect data
-