Class ExternalCatalogProvider<I extends CatalogItem>

java.lang.Object
com.broadleafcommerce.bulkoperations.service.provider.external.ExternalCatalogProvider<I>
All Implemented Interfaces:
CatalogProvider<I>

public class ExternalCatalogProvider<I extends CatalogItem> extends Object implements CatalogProvider<I>
  • Field Details

  • Constructor Details

    • ExternalCatalogProvider

      public ExternalCatalogProvider(org.springframework.web.reactive.function.client.WebClient webClient, com.broadleafcommerce.common.extension.TypeFactory typeFactory, ProviderUtils providerUtils, ExternalCatalogProperties properties)
  • Method Details

    • createBulkOperation

      public com.broadleafcommerce.bulk.v2.domain.BulkOperationResponse createBulkOperation(com.broadleafcommerce.bulk.v2.domain.BulkOperationRequest bulkOperationRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CatalogProvider
      Creates a bulk operation with the supplied BulkOperationRequest.
      Specified by:
      createBulkOperation in interface CatalogProvider<I extends CatalogItem>
      Parameters:
      bulkOperationRequest - the BulkOperationRequest to create
      contextInfo - context information surrounding sandboxing/multitenant state
      Returns:
      the created bulk operation
    • getSupportedBulkOperations

      public List<com.broadleafcommerce.bulk.v2.domain.SupportedBulkOperation> getSupportedBulkOperations(String operationType, @Nullable String entityType)
      Description copied from interface: CatalogProvider
      Retrieves the list of supported bulk operations for the given operation type in catalog services.
      Specified by:
      getSupportedBulkOperations in interface CatalogProvider<I extends CatalogItem>
      Parameters:
      operationType - the operation type to check
      entityType - the entity type to check
      Returns:
      the list of supported bulk operations
    • initializeItems

      public com.broadleafcommerce.bulk.v2.domain.InitializeItemResponse initializeItems(SearchResponse<I> searchResponse, com.broadleafcommerce.bulk.v2.domain.BulkOperationRequest bulkOperationRequest, com.broadleafcommerce.bulk.v2.domain.BulkOperationResponse bulkOperationResponse, org.springframework.data.domain.Pageable pageable, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CatalogProvider
      Initializes the bulk operation items from the entities returned in the SearchResponse.
      Specified by:
      initializeItems in interface CatalogProvider<I extends CatalogItem>
      Parameters:
      searchResponse - the list of catalog items from the search service
      bulkOperationRequest - the BulkOperationRequest for this bulk operation
      bulkOperationResponse - the bulk operation created
      pageable - the current page information
      contextInfo - context information surrounding sandboxing/multitenant state
      Returns:
      the InitializeItemResponse containing the items created for the bulk operation
    • updateBulkOperationTotalRecordCount

      public com.broadleafcommerce.bulk.v2.domain.BulkOperationResponse updateBulkOperationTotalRecordCount(long totalRecordCount, com.broadleafcommerce.bulk.v2.domain.BulkOperationResponse bulkOperationResponse, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CatalogProvider
      Updates the bulk operation to set the total record count after item initialization.
      Specified by:
      updateBulkOperationTotalRecordCount in interface CatalogProvider<I extends CatalogItem>
      Parameters:
      totalRecordCount - the total number of bulk operation item records
      bulkOperationResponse - the bulk operation
      contextInfo - context information surrounding sandboxing/multitenant state
      Returns:
      the updated bulk operation
    • retrieveAutoIncludedCategories

      public org.springframework.data.domain.Page<Category> retrieveAutoIncludedCategories(org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CatalogProvider
      Retrieves a page of categories that are marked as `AUTO_INCLUDE`.
      Specified by:
      retrieveAutoIncludedCategories in interface CatalogProvider<I extends CatalogItem>
      Parameters:
      page - the page information
      contextInfo - context information surrounding sandboxing/multitenant state
      Returns:
      the page of categories
    • retrieveCategoryDetails

      public Category retrieveCategoryDetails(String categoryContextId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CatalogProvider
      Retrieves the category details for the given category context id.
      Specified by:
      retrieveCategoryDetails in interface CatalogProvider<I extends CatalogItem>
      Parameters:
      categoryContextId - the category context id
      contextInfo - context information surrounding sandboxing/multitenant state
      Returns:
      the category details
    • updateCategoryProducts

      public CategoryProductResponse updateCategoryProducts(CategoryProductRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CatalogProvider
      Updates the category products for the given CategoryProductRequest. This will add or remove products from the categories. Any products that are unable to be removed will have their change container ids be returned in the CategoryProductResponse to be forwarded onto the Sandbox service for reversion.
      Specified by:
      updateCategoryProducts in interface CatalogProvider<I extends CatalogItem>
      Parameters:
      request - the CategoryProductRequest to update
      contextInfo - context information surrounding sandboxing/multitenant state
      Returns:
      the list of products
    • getCreateBulkOperationUrl

      protected String getCreateBulkOperationUrl(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • getSupportedBulkOpsUrl

      protected String getSupportedBulkOpsUrl(String operationType, @Nullable String entityType)
    • getInitializeBulkOperationItemsUrl

      protected String getInitializeBulkOperationItemsUrl(String bulkOperationId, org.springframework.data.domain.Pageable pageable, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • getUpdateBulkOperationTotalRecordCountUrl

      protected String getUpdateBulkOperationTotalRecordCountUrl(com.broadleafcommerce.bulk.v2.domain.BulkOperationResponse bulkOperationResponse)
    • getAutoIncludedCategoriesUrl

      protected String getAutoIncludedCategoriesUrl(org.springframework.data.domain.Pageable page)
    • getCategoryUrl

      protected String getCategoryUrl(String categoryContextId)
    • getUpdateCategoriesUrl

      protected String getUpdateCategoriesUrl()
    • getServiceClient

      protected String getServiceClient()
    • getWebClient

      protected org.springframework.web.reactive.function.client.WebClient getWebClient()
    • getTypeFactory

      protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
    • getProviderUtils

      protected ProviderUtils getProviderUtils()
    • getProperties

      protected ExternalCatalogProperties getProperties()