Class AbstractExternalProvider

java.lang.Object
com.broadleafcommerce.tabby.provider.external.AbstractExternalProvider
Direct Known Subclasses:
ExternalCustomerOrderInfoProvider, ExternalTabbyProvider

public abstract class AbstractExternalProvider extends Object
An abstract class that is used to execute the requests to the gateway API using the WebClient.
  • Constructor Summary

    Constructors
    Constructor
    Description
    AbstractExternalProvider(org.springframework.web.reactive.function.client.WebClient webClient, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected <T> T
    Executes a request with default Web Client error handling.
    protected org.springframework.http.HttpHeaders
    getHeaders(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    Builds the headers to be passed along with the request to the provider.
    protected com.fasterxml.jackson.databind.ObjectMapper
     
    protected org.springframework.web.reactive.function.client.WebClient
     
    protected String
    orderToParamValue(org.springframework.data.domain.Sort.Order order)
    Converts a sort order into a query parameter value (e.g.
    protected org.springframework.util.MultiValueMap<String,String>
    pageableToParams(org.springframework.data.domain.Pageable pageable)
    Converts a pageable into its corresponding query parameters.
    protected Map<String,Object>
    uriVars(Object... keysAndValues)
    Convenience method to generate a map of variables.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AbstractExternalProvider

      public AbstractExternalProvider(org.springframework.web.reactive.function.client.WebClient webClient, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
  • Method Details

    • executeRequest

      protected <T> T executeRequest(Supplier<T> request)
      Executes a request with default Web Client error handling.
      Type Parameters:
      T - the return type of the request operation
      Parameters:
      request - the request to execute
      Returns:
      the value generated by the supplier
    • getHeaders

      protected org.springframework.http.HttpHeaders getHeaders(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Builds the headers to be passed along with the request to the provider.
      Parameters:
      contextInfo - ContextInfo from the original request containing tenant and sandbox info
      Returns:
      The headers to be passed along with the request to the provider.
    • pageableToParams

      protected org.springframework.util.MultiValueMap<String,String> pageableToParams(@Nullable org.springframework.data.domain.Pageable pageable)
      Converts a pageable into its corresponding query parameters.
      Parameters:
      pageable - the pageable to convert
      Returns:
      a map of query parameters
    • orderToParamValue

      protected String orderToParamValue(org.springframework.data.domain.Sort.Order order)
      Converts a sort order into a query parameter value (e.g. name,asc).
      Parameters:
      order - the sort order to convert
      Returns:
      the query parameter value for the sort order
    • uriVars

      protected Map<String,Object> uriVars(Object... keysAndValues)
      Convenience method to generate a map of variables.
      Parameters:
      keysAndValues - the keys and values (in pairs, alternating) to transform into a map
      Returns:
      the keys and values as a map
    • getWebClient

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

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