com.sugestio.client
Class SugestioClient

java.lang.Object
  extended by com.sugestio.client.SugestioClient

public class SugestioClient
extends java.lang.Object


Nested Class Summary
static class SugestioClient.PartitionType
           
static class SugestioClient.ResourceType
           
static class SugestioClient.Verb
           
 
Constructor Summary
SugestioClient(java.lang.String account, java.lang.String secret)
          Creates a new instance of the SugestioClient with the given access credentials.
SugestioClient(java.lang.String account, java.lang.String secret, int bulkMaxCount, int bulkThreads)
          Creates a new instance of the SugestioClient with the given access credentials and concurrency options.
SugestioClient(SugestioConfig config)
          Creates a new instance of the SugestioClient with the given Config object.
 
Method Summary
 SugestioResult<java.lang.String> addConsumption(Consumption consumption)
          Submit a single consumption
 java.util.Map<java.util.List<Consumption>,SugestioResult<java.lang.String>> addConsumptions(java.util.List<Consumption> consumptions)
          Efficient method for adding multiple consumptions.
 SugestioResult<java.lang.String> addItem(Item item)
          Add or update a single item.
 java.util.Map<java.util.List<Item>,SugestioResult<java.lang.String>> addItems(java.util.List<Item> items)
          Efficient method for adding multiple items
 SugestioResult<java.lang.String> addUser(User user)
          Add or update a single user.
 java.util.Map<java.util.List<User>,SugestioResult<java.lang.String>> addUsers(java.util.List<User> users)
          Efficient method for adding multiple users
 SugestioResult<java.lang.String> deleteConsumption(java.lang.String consumptionId)
          Deletes the consumption identified by the given consumptionId.
 java.util.Map<java.lang.String,SugestioResult<java.lang.String>> deleteConsumptions(java.util.List<java.lang.String> consumptionIds)
          Deletes the consumptions identified by the given consumptionIds.
 SugestioResult<java.lang.String> deleteItem(java.lang.String itemId)
          Deletes the metadata of the given user.
 SugestioResult<java.lang.String> deleteRecommendation(java.lang.String userId, java.lang.String itemId)
          Indicate that the user did not appreciate a certain recommendation.
 SugestioResult<java.lang.String> deleteUser(java.lang.String userId)
          Deletes the metadata of the given user.
 SugestioResult<java.lang.String> deleteUserConsumptions(java.lang.String userId, java.lang.String itemId)
          Deletes the consumption data of the given user, optionally filtered by itemId.
 java.util.List<Report> getAnalytics(java.lang.Integer limit)
          Get analytics data.
 Consumption getConsumption(java.lang.String consumptionId)
          Retrieves the consumption with given consumptionId
 java.util.List<Consumption> getConsumptionHistory(java.lang.String userId, java.lang.String itemId)
          Retrieve the consumptions this user has made, optionally filtered by itemId.
 Item getItem(java.lang.String itemId)
          Retrieves the item metadata for the given itemId.
 java.util.Map<java.lang.String,SugestioResult<java.util.List<Recommendation>>> getRecommendations(java.util.List<java.lang.String> userIds)
          Gets recommendations for the given userIds
 java.util.Map<java.lang.String,SugestioResult<java.util.List<Recommendation>>> getRecommendations(java.util.List<java.lang.String> userIds, SugestioClient.PartitionType partitionType, java.lang.String partitionId)
          Gets recommendations for the given userIds, limited to the given partition
 java.util.List<Recommendation> getRecommendations(java.lang.String userId)
          Gets recommendations for the given userId
 java.util.List<Recommendation> getRecommendations(java.lang.String userId, RecommendationFilter filter)
          Gets recommendations for the given userId
 java.util.List<Recommendation> getRecommendations(java.lang.String userId, SugestioClient.PartitionType partitionType, java.lang.String partitionId)
          Gets recommendations for the given userId, limited to the given partition
 java.util.Map<java.lang.String,SugestioResult<java.util.List<Recommendation>>> getSimilar(java.util.List<java.lang.String> itemIds)
          Gets similar items for the given itemIds
 java.util.Map<java.lang.String,SugestioResult<java.util.List<Recommendation>>> getSimilar(java.util.List<java.lang.String> itemIds, SugestioClient.PartitionType partitionType, java.lang.String partitionId)
          Gets similar items for the given itemIds, limited to the given partition
 java.util.List<Recommendation> getSimilar(java.lang.String itemId)
          Gets items that are similar to the given item
 java.util.List<Recommendation> getSimilar(java.lang.String itemId, RecommendationFilter filter)
          Gets items that are similar to the given item
 java.util.List<Recommendation> getSimilar(java.lang.String itemId, SugestioClient.PartitionType partitionType, java.lang.String partitionId)
          Gets items that are similar to the given item, limited to the given partition
 void shutdown()
          Initiates an orderly shutdown of the client.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SugestioClient

public SugestioClient(java.lang.String account,
                      java.lang.String secret)
Creates a new instance of the SugestioClient with the given access credentials.

Parameters:
account - your account key
secret - your secret key

SugestioClient

public SugestioClient(java.lang.String account,
                      java.lang.String secret,
                      int bulkMaxCount,
                      int bulkThreads)
Creates a new instance of the SugestioClient with the given access credentials and concurrency options.

Parameters:
account - your account key
secret - your secret key
bulkMaxCount - number of users, items or consumptions to submit in a single request
bulkThreads - number of concurrent request

SugestioClient

public SugestioClient(SugestioConfig config)
Creates a new instance of the SugestioClient with the given Config object. This constructor allows for more customization of the client behaviour.

Parameters:
config -
Method Detail

shutdown

public void shutdown()
Initiates an orderly shutdown of the client. Any pending web service requests are executed, but new requests will be rejected.

Throws:
java.lang.Exception

getRecommendations

public java.util.List<Recommendation> getRecommendations(java.lang.String userId)
                                                  throws SugestioException
Gets recommendations for the given userId

Parameters:
userId - id of the user
Returns:
a list of recommendations
Throws:
SugestioException

getRecommendations

public java.util.List<Recommendation> getRecommendations(java.lang.String userId,
                                                         RecommendationFilter filter)
                                                  throws SugestioException
Gets recommendations for the given userId

Parameters:
userId - id of the user
filter - recommendation filter
Returns:
a filtered list of recommendations
Throws:
SugestioException

getRecommendations

public java.util.List<Recommendation> getRecommendations(java.lang.String userId,
                                                         SugestioClient.PartitionType partitionType,
                                                         java.lang.String partitionId)
                                                  throws SugestioException
Gets recommendations for the given userId, limited to the given partition

Parameters:
userId - id of the user
partitionType - limit recommendations to one category, one product segment, ...
partitionId - id of the category or segment
Returns:
a list of recommendations
Throws:
SugestioException

getRecommendations

public java.util.Map<java.lang.String,SugestioResult<java.util.List<Recommendation>>> getRecommendations(java.util.List<java.lang.String> userIds)
Gets recommendations for the given userIds

Parameters:
userIds - a list of userIds
Returns:
for each user, a list of recommendations

getRecommendations

public java.util.Map<java.lang.String,SugestioResult<java.util.List<Recommendation>>> getRecommendations(java.util.List<java.lang.String> userIds,
                                                                                                         SugestioClient.PartitionType partitionType,
                                                                                                         java.lang.String partitionId)
Gets recommendations for the given userIds, limited to the given partition

Parameters:
userIds - a list of userIds
partitionType - limit recommendations to one category, one segment, ...
partitionId - id of the category or segment
Returns:
for each user, a list of recommendations

getSimilar

public java.util.List<Recommendation> getSimilar(java.lang.String itemId)
                                          throws SugestioException
Gets items that are similar to the given item

Parameters:
itemId - id of the item
Returns:
list of similar items
Throws:
SugestioException

getSimilar

public java.util.List<Recommendation> getSimilar(java.lang.String itemId,
                                                 RecommendationFilter filter)
                                          throws SugestioException
Gets items that are similar to the given item

Parameters:
itemId - id of the item
filter - recommendation filter
Returns:
filtered list of similar items
Throws:
SugestioException

getSimilar

public java.util.List<Recommendation> getSimilar(java.lang.String itemId,
                                                 SugestioClient.PartitionType partitionType,
                                                 java.lang.String partitionId)
                                          throws SugestioException
Gets items that are similar to the given item, limited to the given partition

Parameters:
itemId - id of the item
partitionType - limit items to one category, one segment, ...
partitionId - id of the category or segment
Returns:
list of similar items
Throws:
SugestioException

getSimilar

public java.util.Map<java.lang.String,SugestioResult<java.util.List<Recommendation>>> getSimilar(java.util.List<java.lang.String> itemIds)
                                                                                          throws SugestioException
Gets similar items for the given itemIds

Parameters:
itemIds - list of item ids
Returns:
for each item, a list of similar items
Throws:
SugestioException

getSimilar

public java.util.Map<java.lang.String,SugestioResult<java.util.List<Recommendation>>> getSimilar(java.util.List<java.lang.String> itemIds,
                                                                                                 SugestioClient.PartitionType partitionType,
                                                                                                 java.lang.String partitionId)
                                                                                          throws SugestioException
Gets similar items for the given itemIds, limited to the given partition

Parameters:
itemIds - the items for which to get similar items
partitionType - limit items to one category, one segment, ...
partitionId - id of the category or segment
Returns:
for each item, a list of similar items
Throws:
SugestioException

deleteRecommendation

public SugestioResult<java.lang.String> deleteRecommendation(java.lang.String userId,
                                                             java.lang.String itemId)
                                                      throws SugestioException
Indicate that the user did not appreciate a certain recommendation. This item will never return in the user's recommendations

Parameters:
userId - userId
itemId - itemId
Returns:
result
Throws:
SugestioException

getConsumption

public Consumption getConsumption(java.lang.String consumptionId)
                           throws SugestioException
Retrieves the consumption with given consumptionId

Parameters:
consumptionId -
Returns:
consumption
Throws:
SugestioException

getConsumptionHistory

public java.util.List<Consumption> getConsumptionHistory(java.lang.String userId,
                                                         java.lang.String itemId)
                                                  throws SugestioException
Retrieve the consumptions this user has made, optionally filtered by itemId.

Parameters:
userId - userId (required)
itemId - itemId (optional)
Returns:
consumptions
Throws:
SugestioException

addConsumption

public SugestioResult<java.lang.String> addConsumption(Consumption consumption)
                                                throws SugestioException
Submit a single consumption

Parameters:
consumption -
Returns:
result
Throws:
SugestioException

addConsumptions

public java.util.Map<java.util.List<Consumption>,SugestioResult<java.lang.String>> addConsumptions(java.util.List<Consumption> consumptions)
Efficient method for adding multiple consumptions.

Parameters:
consumptions - list of consumptions
Returns:
result

deleteUserConsumptions

public SugestioResult<java.lang.String> deleteUserConsumptions(java.lang.String userId,
                                                               java.lang.String itemId)
                                                        throws SugestioException
Deletes the consumption data of the given user, optionally filtered by itemId. The user's metadata is not deleted.

Parameters:
userId - (required)
itemId - (optional) the item consumptions to delete
Returns:
Throws:
SugestioException

deleteConsumption

public SugestioResult<java.lang.String> deleteConsumption(java.lang.String consumptionId)
                                                   throws SugestioException
Deletes the consumption identified by the given consumptionId.

Parameters:
consumptionId -
Returns:
Throws:
SugestioException

deleteConsumptions

public java.util.Map<java.lang.String,SugestioResult<java.lang.String>> deleteConsumptions(java.util.List<java.lang.String> consumptionIds)
                                                                                    throws SugestioException
Deletes the consumptions identified by the given consumptionIds.

Parameters:
consumptionIds -
Returns:
Throws:
SugestioException

addUser

public SugestioResult<java.lang.String> addUser(User user)
                                         throws SugestioException
Add or update a single user.

Parameters:
user -
Returns:
result
Throws:
SugestioException

addUsers

public java.util.Map<java.util.List<User>,SugestioResult<java.lang.String>> addUsers(java.util.List<User> users)
Efficient method for adding multiple users

Parameters:
users - list of users
Returns:
result

deleteUser

public SugestioResult<java.lang.String> deleteUser(java.lang.String userId)
                                            throws SugestioException
Deletes the metadata of the given user. The user's consumptions are not deleted.

Parameters:
userId -
Returns:
Throws:
SugestioException

getItem

public Item getItem(java.lang.String itemId)
             throws SugestioException
Retrieves the item metadata for the given itemId.

Parameters:
itemId -
Returns:
item metadata
Throws:
SugestioException

addItem

public SugestioResult<java.lang.String> addItem(Item item)
                                         throws SugestioException
Add or update a single item.

Parameters:
item -
Returns:
Throws:
SugestioException

addItems

public java.util.Map<java.util.List<Item>,SugestioResult<java.lang.String>> addItems(java.util.List<Item> items)
Efficient method for adding multiple items

Parameters:
items - list of items
Returns:
result

deleteItem

public SugestioResult<java.lang.String> deleteItem(java.lang.String itemId)
                                            throws SugestioException
Deletes the metadata of the given user. The user's consumptions are not deleted.

Parameters:
itemId -
Returns:
Throws:
SugestioException

getAnalytics

public java.util.List<Report> getAnalytics(java.lang.Integer limit)
                                    throws SugestioException
Get analytics data.

Parameters:
limit - number of reports
Returns:
list of reports
Throws:
SugestioException