Package com.commercetools.sync.services
Interface CustomerService
- 
- All Known Implementing Classes:
 CustomerServiceImpl
public interface CustomerService 
- 
- 
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.util.concurrent.CompletionStage<java.util.Map<java.lang.String,java.lang.String>>cacheKeysToIds(java.util.Set<java.lang.String> keysToCache)Given a set of keys this method caches in-memory a mapping of key -> id only for those keys which are not already cached.java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.customers.Customer>>createCustomer(io.sphere.sdk.customers.CustomerDraft customerDraft)Given a resource draft of typeCustomerDraft, this method attempts to create a resourceCustomerbased on the draft, in the CTP project defined by the sync options.java.util.concurrent.CompletionStage<java.util.Optional<java.lang.String>>fetchCachedCustomerId(java.lang.String key)Given akey, if it is blank (null/empty), a completed future with an empty optional is returned.java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.customers.Customer>>fetchCustomerByKey(java.lang.String key)Given a customer key, this method fetches a customer that matches this given key in the CTP project defined in a potentially injectedSphereClient.java.util.concurrent.CompletionStage<java.util.Set<io.sphere.sdk.customers.Customer>>fetchMatchingCustomersByKeys(java.util.Set<java.lang.String> customerKeys)Given aSetof customer keys, this method fetches a set of all the customers, matching the given set of keys in the CTP project, defined in an injectedSphereClient.java.util.concurrent.CompletionStage<io.sphere.sdk.customers.Customer>updateCustomer(io.sphere.sdk.customers.Customer customer, java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.customers.Customer>> updateActions)Given aCustomerand aList<UpdateAction<Customer>>, this method issues an update request with these update actions on thisCustomerin the CTP project defined in a potentially injectedSphereClient. 
 - 
 
- 
- 
Method Detail
- 
cacheKeysToIds
@Nonnull java.util.concurrent.CompletionStage<java.util.Map<java.lang.String,java.lang.String>> cacheKeysToIds(@Nonnull java.util.Set<java.lang.String> keysToCache)Given a set of keys this method caches in-memory a mapping of key -> id only for those keys which are not already cached.- Parameters:
 keysToCache- a set of keys to cache.- Returns:
 - a map of key to ids of the requested keys.
 
 
- 
fetchMatchingCustomersByKeys
@Nonnull java.util.concurrent.CompletionStage<java.util.Set<io.sphere.sdk.customers.Customer>> fetchMatchingCustomersByKeys(@Nonnull java.util.Set<java.lang.String> customerKeys)Given aSetof customer keys, this method fetches a set of all the customers, matching the given set of keys in the CTP project, defined in an injectedSphereClient. A mapping of the key to the id of the fetched customers is persisted in an in-memory map.- Parameters:
 customerKeys- set of customer keys to fetch matching resources by.- Returns:
 CompletionStage<Set<Customer>> in which the result of it's completion contains aSetof all matching customers.
 
- 
fetchCustomerByKey
@Nonnull java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.customers.Customer>> fetchCustomerByKey(@Nullable java.lang.String key)Given a customer key, this method fetches a customer that matches this given key in the CTP project defined in a potentially injectedSphereClient. If there is no matching resource an emptyOptionalwill be returned in the returned future. A mapping of the key to the id of the fetched customer is persisted in an in -memory map.- Parameters:
 key- the key of the resource to fetch- Returns:
 CompletionStage<Optional> in which the result of it's completion contains anOptionalthat contains the matchingCustomerif exists, otherwise empty.
 
- 
fetchCachedCustomerId
@Nonnull java.util.concurrent.CompletionStage<java.util.Optional<java.lang.String>> fetchCachedCustomerId(@Nonnull java.lang.String key)Given akey, if it is blank (null/empty), a completed future with an empty optional is returned. Otherwise this method checks if the cached map of resource keys -> ids contains the given key. If it does, an optional containing the matching id is returned. If the cache doesn't contain the key; this method attempts to fetch the id of the key from the CTP project, caches it and returns aCompletionStage<Optional<String>> in which the result of it's completion could contain anOptionalholding the id or an emptyOptionalif no customer was found in the CTP project with this key.- Parameters:
 key- the key by which a customer id should be fetched from the CTP project.- Returns:
 CompletionStage<Optional<String>> in which the result of it's completion could contain anOptionalholding the id or an emptyOptionalif no customer was found in the CTP project with this key.
 
- 
createCustomer
@Nonnull java.util.concurrent.CompletionStage<java.util.Optional<io.sphere.sdk.customers.Customer>> createCustomer(@Nonnull io.sphere.sdk.customers.CustomerDraft customerDraft)Given a resource draft of typeCustomerDraft, this method attempts to create a resourceCustomerbased on the draft, in the CTP project defined by the sync options.A completion stage containing an empty option and the error callback will be triggered in those cases:
- the draft has a blank key
 - the create request fails on CTP
 
On the other hand, if the resource gets created successfully on CTP, the created resource's id and key are cached and the method returns a
CompletionStagein which the result of it's completion contains an instanceOptionalof the resource which was created.- Parameters:
 customerDraft- the resource draft to create a resource based off of.- Returns:
 - a 
CompletionStagecontaining an optional with the created resource if successful otherwise an empty optional. 
 
- 
updateCustomer
@Nonnull java.util.concurrent.CompletionStage<io.sphere.sdk.customers.Customer> updateCustomer(@Nonnull io.sphere.sdk.customers.Customer customer, @Nonnull java.util.List<io.sphere.sdk.commands.UpdateAction<io.sphere.sdk.customers.Customer>> updateActions)Given aCustomerand aList<UpdateAction<Customer>>, this method issues an update request with these update actions on thisCustomerin the CTP project defined in a potentially injectedSphereClient. This method returnsCompletionStage<Customer> in which the result of it's completion contains an instance of theCustomerwhich was updated in the CTP project.- Parameters:
 customer- theCustomerto update.updateActions- the update actions to update theCustomerwith.- Returns:
 CompletionStage<Customer> containing as a result of it's completion an instance of theCustomerwhich was updated in the CTP project or aSphereException.
 
 - 
 
 -