Class DefaultCatalogService

java.lang.Object
com.broadleafcommerce.search.index.catalog.service.DefaultCatalogService
All Implemented Interfaces:
CatalogService

public class DefaultCatalogService extends Object implements CatalogService
Default implementation to read products from the Catalog Service.
  • Field Details

  • Constructor Details

    • DefaultCatalogService

      public DefaultCatalogService(org.springframework.web.reactive.function.client.WebClient webClient, String catalogEndpoint, String readProductIdsPath, String readProductsPath)
  • Method Details

    • readBatchOfProductIds

      public List<String> readBatchOfProductIds(@Nullable String startId, int batchSize) throws com.broadleafcommerce.search.api.SearchIndexException
      Description copied from interface: CatalogService
      Reads a batch of IDs to be placed in a queue for processing.
      Specified by:
      readBatchOfProductIds in interface CatalogService
      Parameters:
      startId - The starting ID
      batchSize - The size of the batch to read
      Returns:
      A list of product IDs.
      Throws:
      com.broadleafcommerce.search.api.SearchIndexException
    • readBatchOfProducts

      public List<com.broadleafcommerce.search.catalog.core.domain.Product> readBatchOfProducts(List<String> ids) throws com.broadleafcommerce.search.api.SearchIndexException
      Description copied from interface: CatalogService
      Reads a batch of Products by their IDs.
      Specified by:
      readBatchOfProducts in interface CatalogService
      Parameters:
      ids - A list of product IDs.
      Returns:
      A list of products or an empty list.
      Throws:
      com.broadleafcommerce.search.api.SearchIndexException - if the service call fails for any reason.
    • readBatchOfProducts

      public List<com.broadleafcommerce.search.catalog.core.domain.Product> readBatchOfProducts(String id) throws com.broadleafcommerce.search.api.SearchIndexException
      Description copied from interface: CatalogService
      Reads a batch of Products by an id.
      Specified by:
      readBatchOfProducts in interface CatalogService
      Parameters:
      id - A product ID.
      Returns:
      A list of products or an empty list.
      Throws:
      com.broadleafcommerce.search.api.SearchIndexException - if the service call fails for any reason.
    • buildReadBatchOfProductIdsUri

      protected String buildReadBatchOfProductIdsUri(@Nullable String startId, int batchSize)
    • buildReadBatchOfProductsUri

      protected String buildReadBatchOfProductsUri(List<String> ids)
      Builds a catalog fetch URI with a filter containing a range of IDs of products to retrieve from catalog.

      e.g. id=ge=1;id=le=10

      The List of ids passed into this method should be in ascending order.

      Parameters:
      ids - The list of ids
      Returns:
      A URI for retrieving a list of products from catalog.
    • addProductConsolidationConfigurationParams

      protected void addProductConsolidationConfigurationParams(org.springframework.web.util.UriBuilder uriBuilder)
      Adds the request parameters to configure the product consolidation request.
      Parameters:
      uriBuilder - the UriBuilder to add the request parameters for
    • addBatchProductIdFilter

      protected void addBatchProductIdFilter(org.springframework.web.util.UriBuilder uriBuilder, List<String> ids)
    • getWebClient

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

      protected String getCatalogEndpoint()
    • getReadProductIdsPath

      protected String getReadProductIdsPath()
    • getReadProductsPath

      protected String getReadProductsPath()
    • getExternalClient

      protected com.broadleafcommerce.common.extension.intercommunication.ExternalClient getExternalClient()
    • setExternalClient

      @Autowired @Qualifier("catalogExternalClient") public void setExternalClient(com.broadleafcommerce.common.extension.intercommunication.ExternalClient externalClient)
    • getServiceClient

      public String getServiceClient()
      The service client to use when calling catalog. Default is "indexerclient".
    • setServiceClient

      public void setServiceClient(String serviceClient)
      The service client to use when calling catalog. Default is "indexerclient".