Class ExternalContentProvider
java.lang.Object
com.broadleafcommerce.catalogbrowse.service.provider.external.AbstractExternalProvider
com.broadleafcommerce.catalogbrowse.service.provider.external.content.ExternalContentProvider
- All Implemented Interfaces:
BrowseEntityProvider,ContentProvider
Connects to an external content service.
- Author:
- Nathan Moore (nathandmoore)
-
Constructor Summary
ConstructorsConstructorDescriptionExternalContentProvider(org.springframework.web.reactive.function.client.WebClient catalogBrowseWebClient, com.fasterxml.jackson.databind.ObjectMapper mapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddCustomerRef(@NonNull ContentContext contentContext, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) AddsCustomerRefto theContentContextbased on the authentication and context info.protected voidattachHydratedRecommendations(ContentItemFieldData fieldData, Map<String, Collection<String>> recommendedProductIds, Map<String, Object> productMap) fetchBrowseEntityDetails(@NonNull BrowseDetailsRequest request) Retrieves a browse entity such as aProductthat matches the givenrequest.fetchBulkContentForRequest(@NonNull BulkContentResolverRequest request) Retrieves aBulkContentResolverResponsefor theBulkContentResolverResponse.fetchContentForRequest(@NonNull ContentResolverRequest request) Retrieves aContentResolverResponsefor theContentResolverResponse.protected CatalogProviderprotected Stringprotected org.springframework.web.reactive.function.client.WebClientprotected Stringprotected com.fasterxml.jackson.databind.ObjectMapperprotected OfferProviderprotected ExternalContentProviderPropertiesprotected RecommendationProviderprotected List<ContentItem>getResultsWithNestedItems(List<ContentItem> contentItems, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected Stringprotected com.broadleafcommerce.common.extension.TypeFactoryprotected StringgetUrl()protected voidhydrateCategories(ContentResolverResponse items, @NonNull ContentResolverRequest resolverRequest) protected voidhydrateExternalEntities(ContentResolverResponse items, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, ContentResolverRequest request) protected voidhydrateOffers(ContentResolverResponse items, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) hydrateProductRecommendationIdsIfApplicable(ContentResolverResponse contentResolverResponse, ContentResolverRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected voidhydrateProducts(ContentResolverResponse items, ContentResolverRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected booleanprotected voidrecursivelyFindEntityIds(ContentItem item, String entityReferenceType, Set<String> ids) protected voidrecursivelyFindEntityIdsExcluding(ContentItem item, String entityReferenceType, Map<String, Map<String, Collection<String>>> allExcludedIds, Set<String> ids) protected voidrecursivelyHydrateEntities(ContentItem item, String entityReferenceType, Map<String, Object> entityMap) protected voidrecursivelyHydrateEntitiesIncludingRecommendations(ContentItem item, String entityReferenceType, Map<String, Map<String, Collection<String>>> allRecommendationIds, Map<String, Object> entityMap) protected voidRemove author information from content items before passing them.voidsetBrowseCatalogProvider(CatalogProvider browseCatalogProvider) voidsetOfferProvider(OfferProvider offerProvider) voidsetProperties(ExternalContentProviderProperties properties) voidsetRecommendationProvider(RecommendationProvider recommendationProvider) Methods inherited from class com.broadleafcommerce.catalogbrowse.service.provider.external.AbstractExternalProvider
getAuthenticationUtils, getExternalProviderProperties, getHeaders, getHeaders, isCallerWhitelistedService, setAuthenticationUtils, setExternalProviderProperties
-
Constructor Details
-
ExternalContentProvider
public ExternalContentProvider(@Qualifier("catalogBrowseWebClient") org.springframework.web.reactive.function.client.WebClient catalogBrowseWebClient, com.fasterxml.jackson.databind.ObjectMapper mapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
fetchContentForRequest
public ContentResolverResponse fetchContentForRequest(@NonNull @NonNull ContentResolverRequest request) Description copied from interface:ContentProviderRetrieves aContentResolverResponsefor theContentResolverResponse.- Specified by:
fetchContentForRequestin interfaceContentProvider- Parameters:
request- All relevant information to retrieveContentItems.- Returns:
- A
ContentResolverResponsefor theContentResolverResponse.
-
fetchBulkContentForRequest
public BulkContentResolverResponse fetchBulkContentForRequest(@NonNull @NonNull BulkContentResolverRequest request) Description copied from interface:ContentProviderRetrieves aBulkContentResolverResponsefor theBulkContentResolverResponse.- Specified by:
fetchBulkContentForRequestin interfaceContentProvider- Parameters:
request- All relevant information to retrieveContentItemsin bulk.- Returns:
- A
BulkContentResolverResponsefor theBulkContentResolverResponse.
-
hydrateCategories
protected void hydrateCategories(ContentResolverResponse items, @NonNull @NonNull ContentResolverRequest resolverRequest) -
hydrateProducts
protected void hydrateProducts(ContentResolverResponse items, @NonNull ContentResolverRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
hydrateOffers
protected void hydrateOffers(ContentResolverResponse items, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
hydrateProductRecommendationIdsIfApplicable
protected Map<String,Map<String, hydrateProductRecommendationIdsIfApplicableCollection<String>>> (ContentResolverResponse contentResolverResponse, @NonNull ContentResolverRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
attachHydratedRecommendations
protected void attachHydratedRecommendations(ContentItemFieldData fieldData, Map<String, Collection<String>> recommendedProductIds, Map<String, Object> productMap) -
getResultsWithNestedItems
protected List<ContentItem> getResultsWithNestedItems(List<ContentItem> contentItems, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
recursivelyFindEntityIdsExcluding
protected void recursivelyFindEntityIdsExcluding(ContentItem item, String entityReferenceType, Map<String, Map<String, Collection<String>>> allExcludedIds, Set<String> ids) -
recursivelyHydrateEntitiesIncludingRecommendations
-
recursivelyFindEntityIds
protected void recursivelyFindEntityIds(ContentItem item, String entityReferenceType, Set<String> ids) -
recursivelyHydrateEntities
protected void recursivelyHydrateEntities(ContentItem item, String entityReferenceType, Map<String, Object> entityMap) -
fetchBrowseEntityDetails
Description copied from interface:BrowseEntityProviderRetrieves a browse entity such as aProductthat matches the givenrequest.- Specified by:
fetchBrowseEntityDetailsin interfaceBrowseEntityProvider- Parameters:
request- All of the relevant information to be used to retrieve a browse entity's details such as a list of URIs.- Returns:
- The details of the browse entities matching the
request
-
addCustomerRef
protected void addCustomerRef(@NonNull @NonNull ContentContext contentContext, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) AddsCustomerRefto theContentContextbased on the authentication and context info.- Parameters:
contentContext- TheContentContextfor the request.contextInfo- Additional tenant and sandbox info that may also include customer segment ids.
-
hydrateExternalEntities
protected void hydrateExternalEntities(ContentResolverResponse items, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, ContentResolverRequest request) -
removeAuthorFromContentItems
Remove author information from content items before passing them. This is done to address privacy concerns that may arise when author information is on the payload. -
getUrl
-
getContentItemsUri
-
getBulkContentItemsUri
-
getServiceClient
-
isHydrateExternalEntities
protected boolean isHydrateExternalEntities() -
getCatalogBrowseWebClient
protected org.springframework.web.reactive.function.client.WebClient getCatalogBrowseWebClient() -
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory() -
getMapper
protected com.fasterxml.jackson.databind.ObjectMapper getMapper()- Overrides:
getMapperin classAbstractExternalProvider
-
getBrowseCatalogProvider
-
setBrowseCatalogProvider
-
getOfferProvider
-
setOfferProvider
-
getRecommendationProvider
-
setRecommendationProvider
@Autowired @Lazy public void setRecommendationProvider(RecommendationProvider recommendationProvider) -
getProperties
-
setProperties
-