Class DefaultCatalogService

java.lang.Object
com.broadleafcommerce.search.index.catalog.service.DefaultCatalogService
All Implemented Interfaces:
CatalogService, org.springframework.beans.factory.InitializingBean

public class DefaultCatalogService extends Object implements CatalogService, org.springframework.beans.factory.InitializingBean
Default implementation to read products from the Catalog Service.
  • Field Details

  • Constructor Details

    • DefaultCatalogService

      @Deprecated(since="2.3.0-GA") public DefaultCatalogService(org.springframework.web.reactive.function.client.WebClient webClient, String catalogEndpoint, String readProductIdsPath, String readProductsPath)
      Deprecated.
    • DefaultCatalogService

      public DefaultCatalogService()
  • Method Details

    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • readBatchOfProductIds

      public List<String> readBatchOfProductIds(@Nullable String startId, int batchSize) throws com.broadleafcommerce.search.api.SearchIndexException
      Specified by:
      readBatchOfProductIds in interface CatalogService
      Throws:
      com.broadleafcommerce.search.api.SearchIndexException
    • readBatchOfProductIds

      public List<String> readBatchOfProductIds(String startId, int batchSize, @Nullable Map<String,Object> additionalProperties) 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
      additionalProperties - additional information that can be used to filter the items to be indexed
      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

      @Deprecated(since="2.1.5-GA") protected String buildReadBatchOfProductIdsUri(@Nullable String startId, int batchSize)
      Deprecated.
      in favor of buildReadBatchOfProductIdsUri(String, int, Map<String, Object>) for the potential to utilize a time range when reading products.
    • buildReadBatchOfProductIdsUri

      protected String buildReadBatchOfProductIdsUri(@Nullable String startId, int batchSize, @Nullable Map<String,Object> additionalProperties)
      Build the product id URI based on the provided parameters.
      Parameters:
      startId - The starting ID
      batchSize - The size of the batch
      additionalProperties - additional information that can be used to filter the items to be indexed
      Returns:
      the built uri
    • 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)
    • buildBatchProductIdsFilters

      protected cz.jirutka.rsql.parser.ast.Node buildBatchProductIdsFilters(@Nullable String startId, @Nullable Map<String,Object> additionalProperties)
    • getCatalogEndpoint

      protected String getCatalogEndpoint()
    • getReadProductIdsPath

      protected String getReadProductIdsPath()
    • getReadProductsPath

      protected String getReadProductsPath()
    • getInterlinkClient

      protected com.broadleafcommerce.data.tracking.core.interlink.InterlinkClient getInterlinkClient()
    • setInterlinkClient

      @Autowired public void setInterlinkClient(com.broadleafcommerce.data.tracking.core.interlink.InterlinkClient interlinkClient)
    • getObjectMapper

      protected com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
    • setObjectMapper

      @Autowired public void setObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
    • getProductConsolidationRequest

      protected Object getProductConsolidationRequest()
    • setProductConsolidationRequest

      @Autowired(required=false) @Qualifier("productConsolidationRequest") public void setProductConsolidationRequest(Object productConsolidationRequest)
    • getInterlinkWebClient

      protected com.broadleafcommerce.data.tracking.core.interlink.InterlinkWebClient getInterlinkWebClient()
    • setInterlinkWebClient

      @Autowired public void setInterlinkWebClient(com.broadleafcommerce.data.tracking.core.interlink.InterlinkWebClient interlinkWebClient)
    • getProperties

      protected CatalogIndexerServiceProperties getProperties()
    • setProperties

      @Autowired public void setProperties(CatalogIndexerServiceProperties properties)
    • getIndexerWebClient

      protected org.springframework.web.reactive.function.client.WebClient getIndexerWebClient()
    • setIndexerWebClient

      public void setIndexerWebClient(org.springframework.web.reactive.function.client.WebClient indexerWebClient)
    • 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".