Class DefaultCustomerAccountService<A extends Account,M extends AccountMember>
java.lang.Object
com.broadleafcommerce.customer.service.DefaultCustomerAccountService<A,M>
- All Implemented Interfaces:
CustomerAccountService<A,M>
public class DefaultCustomerAccountService<A extends Account,M extends AccountMember>
extends Object
implements CustomerAccountService<A,M>
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultCustomerAccountService(AccountMemberService<M> accountMemberService, AccountService<A> accountService, com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils authenticationUtils) -
Method Summary
Modifier and TypeMethodDescriptionprotected MbuildAccountMemberFromRequest(@NonNull String accountId, @NonNull CreateAccountUserRequest request, @NonNull Customer customer) protected AccountUserManuallyCreatedEventbuildAccountUserCreatedEvent(@NonNull CreateAccountUserRequest request, @NonNull String accountId, @NonNull Customer createdCustomer, M createdAccountMember) Builds anAccountUserManuallyCreatedEventfrom the given request, account id, createdCustomer, and createdAccountMember.protected CustomerbuildCustomerFromRequest(@NonNull String accountId, @NonNull CreateAccountUserRequest request) protected McreateAccountMember(@NonNull String accountId, @NonNull CreateAccountUserRequest request, @NonNull Customer customer, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) createAccountUser(@NonNull String accountId, @NonNull CreateAccountUserRequest createRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) ThePERSISTENCEnotification is suppressed so that one singleAccountUserManuallyCreatedEventcan be used to create the user with given restrictions on the AuthenticationService side.protected CustomercreateCustomer(@NonNull String accountId, @NonNull CreateAccountUserRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) voiddeleteAccountMember(String accountId, String memberId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected StringdetermineAccountMemberStatus(@NonNull CreateAccountUserRequest request) Hook point to determine the status of theAccountMemberbeing created.protected AccountMemberService<M>protected AccountService<A>protected AccountUserManuallyCreatedProducerThe producer is not a required bean as a flexpackage (e.g.protected com.broadleafcommerce.resource.security.utils.service.AuthenticationUtilsprotected CustomerConfigurationPropertiesprotected CustomerService<Customer>protected com.broadleafcommerce.common.messaging.notification.DetachedDurableMessageSenderprotected com.broadleafcommerce.common.extension.TypeFactoryvoidinit()readAccountMember(String accountId, String memberId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) org.springframework.data.domain.Page<M>readAccountMembers(String accountId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Read theAccountMembersfor a specificAccountby id.readMyAccounts(int childAccountDepth, boolean filterParents, cz.jirutka.rsql.parser.ast.Node filters, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Reads the currently logged in user'sAccounts.voidsetAccountUserCreatedProducer(AccountUserManuallyCreatedProducer accountUserCreatedProducer) The producer is not a required bean as a flexpackage (e.g.voidsetCustomerProperties(CustomerConfigurationProperties customerProperties) voidsetCustomerService(CustomerService<Customer> customerService) voidsetDetachedDurableMessageSender(com.broadleafcommerce.common.messaging.notification.DetachedDurableMessageSender detachedDurableMessageSender) voidsetTypeFactory(com.broadleafcommerce.common.extension.TypeFactory typeFactory) updateAccountMember(String accountId, String memberId, @NonNull UpdateAccountMemberRequest accountMember, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected voidvalidateAccountIdMatchesContext(String accountId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected voidvalidateCreateAccountUserRequest(@NonNull String accountId, @NonNull CreateAccountUserRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected voidvalidateUserNotModifyingThemselves(@NonNull AccountMember accountMember, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
-
Constructor Details
-
DefaultCustomerAccountService
public DefaultCustomerAccountService(AccountMemberService<M> accountMemberService, AccountService<A> accountService, com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils authenticationUtils)
-
-
Method Details
-
init
@PostConstruct public void init() -
readAccountMembers
public org.springframework.data.domain.Page<M> readAccountMembers(String accountId, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CustomerAccountServiceRead theAccountMembersfor a specificAccountby id.- Specified by:
readAccountMembersin interfaceCustomerAccountService<A extends Account,M extends AccountMember> - Parameters:
accountId- Id of the parent accountfilters- RSQL filterspage- Pagination infocontextInfo- Additional multitenant and sandbox info- Returns:
- The
AccountMembersfor a specificAccountby id.
-
readAccountMember
public M readAccountMember(String accountId, String memberId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) - Specified by:
readAccountMemberin interfaceCustomerAccountService<A extends Account,M extends AccountMember>
-
updateAccountMember
public M updateAccountMember(String accountId, String memberId, @NonNull @NonNull UpdateAccountMemberRequest accountMember, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) - Specified by:
updateAccountMemberin interfaceCustomerAccountService<A extends Account,M extends AccountMember>
-
createAccountUser
@SuppressNotification(value="PERSISTENCE", compileChangeDetails=false) public CreateAccountUserResponse createAccountUser(@NonNull @NonNull String accountId, @NonNull @NonNull CreateAccountUserRequest createRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) ThePERSISTENCEnotification is suppressed so that one singleAccountUserManuallyCreatedEventcan be used to create the user with given restrictions on the AuthenticationService side.- Specified by:
createAccountUserin interfaceCustomerAccountService<A extends Account,M extends AccountMember> - Parameters:
accountId- the id of the account to create the user increateRequest- theCreateAccountUserRequestcontaining the detailscontextInfo- additional multitenant and sandbox info- Returns:
- the
CreateAccountUserResponserepresenting the result of the creation
-
deleteAccountMember
public void deleteAccountMember(String accountId, String memberId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) - Specified by:
deleteAccountMemberin interfaceCustomerAccountService<A extends Account,M extends AccountMember>
-
readMyAccounts
public List<A> readMyAccounts(int childAccountDepth, boolean filterParents, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CustomerAccountServiceReads the currently logged in user'sAccounts. SetexcludeAccountsWithInactiveParenttotrueto filter out accounts that have a disabled parent account.- Specified by:
readMyAccountsin interfaceCustomerAccountService<A extends Account,M extends AccountMember> - Parameters:
childAccountDepth- How many levels deep of the account hierarchy of the accounts matchingidsto include in the results, e.g., how many levels of child accounts to include.-1indicates no limit.0indicates no child accounts.Default is
0.filterParents- If true, the returned list will include only accounts with active parent accounts.filters- An RSQL filter used to narrow query results. May beEmptyNodeif no filters should be applied.contextInfo- Additional multitenant and sandbox info- Returns:
- The currently logged in user's
Accounts.
-
validateUserNotModifyingThemselves
protected void validateUserNotModifyingThemselves(@NonNull @NonNull AccountMember accountMember, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
validateAccountIdMatchesContext
protected void validateAccountIdMatchesContext(String accountId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
validateCreateAccountUserRequest
protected void validateCreateAccountUserRequest(@NonNull @NonNull String accountId, @NonNull @NonNull CreateAccountUserRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
createCustomer
protected Customer createCustomer(@NonNull @NonNull String accountId, @NonNull @NonNull CreateAccountUserRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
buildCustomerFromRequest
protected Customer buildCustomerFromRequest(@NonNull @NonNull String accountId, @NonNull @NonNull CreateAccountUserRequest request) -
createAccountMember
protected M createAccountMember(@NonNull @NonNull String accountId, @NonNull @NonNull CreateAccountUserRequest request, @NonNull @NonNull Customer customer, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
buildAccountMemberFromRequest
protected M buildAccountMemberFromRequest(@NonNull @NonNull String accountId, @NonNull @NonNull CreateAccountUserRequest request, @NonNull @NonNull Customer customer) -
determineAccountMemberStatus
Hook point to determine the status of theAccountMemberbeing created.- Parameters:
request- theCreateAccountUserRequestthat is being used to create the user- Returns:
- the status of the
AccountMemberbeing created
-
buildAccountUserCreatedEvent
protected AccountUserManuallyCreatedEvent buildAccountUserCreatedEvent(@NonNull @NonNull CreateAccountUserRequest request, @NonNull @NonNull String accountId, @NonNull @NonNull Customer createdCustomer, @NonNull M createdAccountMember) Builds anAccountUserManuallyCreatedEventfrom the given request, account id, createdCustomer, and createdAccountMember.- Parameters:
request- the originalCreateAccountUserRequestaccountId- the id of the account the user was created increatedCustomer- theCustomerthat was createdcreatedAccountMember- theAccountMemberthat was created- Returns:
- the built
AccountUserManuallyCreatedEvent
-
getAccountMemberService
-
getAccountService
-
getAuthenticationUtils
protected com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils getAuthenticationUtils() -
getCustomerService
-
setCustomerService
-
getCustomerProperties
-
setCustomerProperties
-
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory() -
setTypeFactory
@Autowired public void setTypeFactory(com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
getAccountUserCreatedProducer
The producer is not a required bean as a flexpackage (e.g. processing) may have CustomerService's messaging turned off so that another flexpackage (e.g. cart) is dedicated to handle it -
setAccountUserCreatedProducer
@Autowired(required=false) public void setAccountUserCreatedProducer(AccountUserManuallyCreatedProducer accountUserCreatedProducer) The producer is not a required bean as a flexpackage (e.g. processing) may have CustomerService's messaging turned off so that another flexpackage (e.g. cart) is dedicated to handle it -
getDetachedDurableMessageSender
@Nullable protected com.broadleafcommerce.common.messaging.notification.DetachedDurableMessageSender getDetachedDurableMessageSender() -
setDetachedDurableMessageSender
@Autowired(required=false) public void setDetachedDurableMessageSender(com.broadleafcommerce.common.messaging.notification.DetachedDurableMessageSender detachedDurableMessageSender)
-