proximiant.sdk.api
Class ProximiantClientApi

java.lang.Object
  extended by java.util.Observable
      extended by proximiant.sdk.api.ProximiantClientApi

public class ProximiantClientApi
extends java.util.Observable

Proximiant Client API for accessing Receipts DATA Most our API are using the Async approach, when ready we will send notification to observers for API result.


Field Summary
static java.lang.String ADS
           
static java.lang.String API_FAILURE
           
static java.lang.String CAMERA_RECEIPT
           
static java.lang.String CREATE_CHAT
           
static java.lang.String CREATE_GROUP
           
static java.lang.String CREATE_USER_LOYALTY_CARD
           
static java.lang.String DELETE_RECEIPT
           
static java.lang.String DELETE_RECEIPT_FROM_GROUP
           
static java.lang.String DELETE_USER_GROUP
           
static java.lang.String DELETE_USER_LOYALTY_CARD
           
static java.lang.String DEV
           
static java.lang.String FRANCHISE_CHAT_HISTORY
           
static java.lang.String GET_CAMERA_RECEIPT
           
static java.lang.String GET_RECEIPT_HTML
           
static java.lang.String GROUP
           
static java.lang.String GROUP_RECEIPT_LIST
           
static java.lang.String LOYALTY
           
static java.lang.String NOTIFICATION
           
static java.lang.String OFFLINE_RECEIPT
           
static java.lang.String PROD
           
static java.lang.String PRODUCT_CHAT_HISTORY
           
static java.lang.String PROX_ACCESS_TOKEN
           
static java.lang.String RECEIPT_CHAT_HISTORY
           
static java.lang.String RECEIPT_DETAIL
           
static java.lang.String RECEIPT_LIST
           
static java.lang.String RECEIPT_PRODUCT_CHAT_HISTORY
           
static java.lang.String REG_GCM
           
static java.lang.String REG_RECEIPT
           
static java.lang.String STAGE
           
static java.lang.String STORE_CHAT_HISTORY
           
static java.lang.String STORES
           
static java.lang.String SUGGESTED_LOYALTY_CARD
           
static java.lang.String USER_LOYALTY_CARD
           
static java.lang.String USER_PROFILE
           
 
Constructor Summary
ProximiantClientApi()
           
ProximiantClientApi(java.lang.String env)
           
 
Method Summary
 void addNewImageChat(int idPost, android.graphics.Bitmap bmp)
           
 void addNewTextChat(int idPost, java.lang.String text)
           
 void addReceiptToUserProject(java.lang.String publicId, java.lang.String rid)
           
 java.lang.String b64EncodeBitmap(android.graphics.Bitmap bmp)
           
 java.lang.String b64EncodeString(java.lang.String text)
           
 void cameraReceipt(android.graphics.Bitmap bmp, java.lang.Float total, java.lang.Float subTotal, int storeId, java.lang.String description, java.lang.String rid)
           
 void checkProxAuth(android.content.Context context, java.lang.String cId, java.lang.String secret)
           
 void clearReceiptsCache(int page)
           
 void createUserLoyaltyCard(java.lang.String publicId, java.lang.String businessName, int businessId, java.lang.String barcode, java.lang.String barcodeType)
           
 void createUserProject(java.lang.String publicId, java.lang.String name, java.lang.String colorCode, java.lang.String description)
           
 java.lang.String decodeB64String(java.lang.String b64String)
           
 void deleteReceipt(java.lang.String rid)
           
 void deleteReceiptFromUserProject(java.lang.String publicId, java.lang.String rid)
           
 void deleteUserProject(java.lang.String publicId)
           
 void delUserLoyaltyCard(java.lang.String publicId)
           
 java.lang.String generateLocalRid()
           
 android.graphics.Bitmap generatePhotoThumbnail(android.graphics.Bitmap bmp)
           
 void getAccessTokenByFacebookToken(java.lang.String fbToken, java.lang.String clientId)
           
 void getAccessTokenByRefreshToken(java.lang.String refreshToken, java.lang.String clientId, java.lang.String clientSecret)
           
 void getAds(java.lang.String rid)
           
 java.lang.String getApiHost()
           
 void getCameraReceiptImage(java.lang.String rid)
           
 void getChatHistoryForFranchise(int idFranchise)
           
 void getChatHistoryForProduct(int idProduct)
           
 void getChatHistoryForReceipt(java.lang.String rid)
           
 void getChatHistoryForReceiptProduct(java.lang.String rid, int idProduct)
           
 void getChatHistoryForStore(int idStore)
           
 void getLoyaltyProgram(int programId)
          Calls a get for loyalty program of the given id.
 void getLoyaltyPrograms()
          Calls a get for all loyalty programs for the access code
 ProximiantApiResult getOfflinePendingReceipts(android.content.Context context)
           
static java.lang.String getRandUUID()
           
 void getReceiptByRid(java.lang.String rid)
           
 void getReceiptHtml(java.lang.String rid)
           
 void getReceipts(int page)
           
 void getReceiptsForUserProject(java.lang.String publicId, int page)
          Calls get for receipts associated to the user project id
 void getStores()
          Get Stores associated with the Client.
 void getSuggestedLoyaltyCards()
          Check all user's receipt and return possible User Loyalty card for franchises.
 void getUserLoyaltyCards()
          Getter api to get a list of Loyalty card for current user.
 void getUserProfile()
          User profile information
 void getUserProjectDetail(java.lang.String publicId)
           
 void getUserProjects()
          Return a list of groups for user.
 void logout()
           
 void registerGcmId(java.lang.String gcmId)
           
 void registerReceipt(java.lang.String rid)
           
 void searchReceipts(java.lang.String query, int page)
           
 void setAccessCode(java.lang.String accessCode)
           
 void setCacheExpire(android.content.Context context, java.lang.Integer value)
           
 void updateUserProject(java.lang.String publicId, java.lang.String name, java.lang.String colorCode, java.lang.String description)
           
 java.lang.String urlEncode(java.lang.String value)
           
 
Methods inherited from class java.util.Observable
addObserver, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROD

public static final java.lang.String PROD
See Also:
Constant Field Values

STAGE

public static final java.lang.String STAGE
See Also:
Constant Field Values

DEV

public static final java.lang.String DEV
See Also:
Constant Field Values

PROX_ACCESS_TOKEN

public static final java.lang.String PROX_ACCESS_TOKEN
See Also:
Constant Field Values

API_FAILURE

public static final java.lang.String API_FAILURE
See Also:
Constant Field Values

RECEIPT_LIST

public static final java.lang.String RECEIPT_LIST
See Also:
Constant Field Values

GROUP_RECEIPT_LIST

public static final java.lang.String GROUP_RECEIPT_LIST
See Also:
Constant Field Values

RECEIPT_DETAIL

public static final java.lang.String RECEIPT_DETAIL
See Also:
Constant Field Values

REG_RECEIPT

public static final java.lang.String REG_RECEIPT
See Also:
Constant Field Values

DELETE_RECEIPT

public static final java.lang.String DELETE_RECEIPT
See Also:
Constant Field Values

ADS

public static final java.lang.String ADS
See Also:
Constant Field Values

USER_PROFILE

public static final java.lang.String USER_PROFILE
See Also:
Constant Field Values

LOYALTY

public static final java.lang.String LOYALTY
See Also:
Constant Field Values

SUGGESTED_LOYALTY_CARD

public static final java.lang.String SUGGESTED_LOYALTY_CARD
See Also:
Constant Field Values

USER_LOYALTY_CARD

public static final java.lang.String USER_LOYALTY_CARD
See Also:
Constant Field Values

CREATE_USER_LOYALTY_CARD

public static final java.lang.String CREATE_USER_LOYALTY_CARD
See Also:
Constant Field Values

DELETE_USER_LOYALTY_CARD

public static final java.lang.String DELETE_USER_LOYALTY_CARD
See Also:
Constant Field Values

NOTIFICATION

public static final java.lang.String NOTIFICATION
See Also:
Constant Field Values

REG_GCM

public static final java.lang.String REG_GCM
See Also:
Constant Field Values

CAMERA_RECEIPT

public static final java.lang.String CAMERA_RECEIPT
See Also:
Constant Field Values

GET_CAMERA_RECEIPT

public static final java.lang.String GET_CAMERA_RECEIPT
See Also:
Constant Field Values

GET_RECEIPT_HTML

public static final java.lang.String GET_RECEIPT_HTML
See Also:
Constant Field Values

STORES

public static final java.lang.String STORES
See Also:
Constant Field Values

FRANCHISE_CHAT_HISTORY

public static final java.lang.String FRANCHISE_CHAT_HISTORY
See Also:
Constant Field Values

STORE_CHAT_HISTORY

public static final java.lang.String STORE_CHAT_HISTORY
See Also:
Constant Field Values

PRODUCT_CHAT_HISTORY

public static final java.lang.String PRODUCT_CHAT_HISTORY
See Also:
Constant Field Values

RECEIPT_CHAT_HISTORY

public static final java.lang.String RECEIPT_CHAT_HISTORY
See Also:
Constant Field Values

RECEIPT_PRODUCT_CHAT_HISTORY

public static final java.lang.String RECEIPT_PRODUCT_CHAT_HISTORY
See Also:
Constant Field Values

GROUP

public static final java.lang.String GROUP
See Also:
Constant Field Values

CREATE_GROUP

public static final java.lang.String CREATE_GROUP
See Also:
Constant Field Values

DELETE_USER_GROUP

public static final java.lang.String DELETE_USER_GROUP
See Also:
Constant Field Values

DELETE_RECEIPT_FROM_GROUP

public static final java.lang.String DELETE_RECEIPT_FROM_GROUP
See Also:
Constant Field Values

CREATE_CHAT

public static final java.lang.String CREATE_CHAT
See Also:
Constant Field Values

OFFLINE_RECEIPT

public static final java.lang.String OFFLINE_RECEIPT
See Also:
Constant Field Values
Constructor Detail

ProximiantClientApi

public ProximiantClientApi()

ProximiantClientApi

public ProximiantClientApi(java.lang.String env)
Method Detail

getRandUUID

public static java.lang.String getRandUUID()

generateLocalRid

public java.lang.String generateLocalRid()

setCacheExpire

public void setCacheExpire(android.content.Context context,
                           java.lang.Integer value)
Parameters:
context - Activity content, required to get the Cache folder
value - expire time in seconds.

getApiHost

public java.lang.String getApiHost()
Returns:
return the api server url this client contacts with.

setAccessCode

public void setAccessCode(java.lang.String accessCode)
Parameters:
accessCode - oAuth2 access code for a logged in user.

getAds

public void getAds(java.lang.String rid)
Parameters:
rid - get related ads for a given receipt id.

getUserProfile

public void getUserProfile()
User profile information


getStores

public void getStores()
Get Stores associated with the Client. Could be null


getReceiptHtml

public void getReceiptHtml(java.lang.String rid)

getCameraReceiptImage

public void getCameraReceiptImage(java.lang.String rid)
Parameters:
rid - Receipt ID

cameraReceipt

public void cameraReceipt(android.graphics.Bitmap bmp,
                          java.lang.Float total,
                          java.lang.Float subTotal,
                          int storeId,
                          java.lang.String description,
                          java.lang.String rid)
Parameters:
bmp - Bitmap of a camera result to be registered as a new receipt.
total - Total amount of this receipt from user input
subTotal - Sub total of this receipt from user input
storeId - Store ID associated with this receipt from user input.
description - Some text for this receipt.
rid - a new string generated by the generateLocalRid() api.

getLoyaltyProgram

public void getLoyaltyProgram(int programId)
Calls a get for loyalty program of the given id.

Parameters:
programId -

getLoyaltyPrograms

public void getLoyaltyPrograms()
Calls a get for all loyalty programs for the access code


getSuggestedLoyaltyCards

public void getSuggestedLoyaltyCards()
Check all user's receipt and return possible User Loyalty card for franchises. We can use this value to send a suggested screen for user to input a loyalty card.


getUserLoyaltyCards

public void getUserLoyaltyCards()
Getter api to get a list of Loyalty card for current user.


createUserLoyaltyCard

public void createUserLoyaltyCard(java.lang.String publicId,
                                  java.lang.String businessName,
                                  int businessId,
                                  java.lang.String barcode,
                                  java.lang.String barcodeType)
Parameters:
publicId - a random UUID to represent this new loyalty cards.
businessName - name from getSuggestedLoyaltyCards
businessId - id from getSuggestedLoyaltyCards
barcode - barcode of the user loyalty card
barcodeType - barcode type, expected value is listed below: CODE39, CODE128, QRCODE, UPCA, UPCE, EAN8, EAN13, PDF417, ISBN10, ISBN13 Additional note: businessId can be 0, we will create a new type from businessName instead of look up a matching business name.

delUserLoyaltyCard

public void delUserLoyaltyCard(java.lang.String publicId)
Parameters:
publicId - id of user loyalty card from getUserLoyaltyCards call

getUserProjects

public void getUserProjects()
Return a list of groups for user.


getUserProjectDetail

public void getUserProjectDetail(java.lang.String publicId)
Parameters:
publicId - group ID returned from getUserProjects

createUserProject

public void createUserProject(java.lang.String publicId,
                              java.lang.String name,
                              java.lang.String colorCode,
                              java.lang.String description)
Parameters:
publicId - a unique random UUID to represent group.
name - Name of the group
colorCode - Color Code for the group (possible value from http://www.w3schools.com/html/html_colornames.asp)
description - detail description of the groups.

updateUserProject

public void updateUserProject(java.lang.String publicId,
                              java.lang.String name,
                              java.lang.String colorCode,
                              java.lang.String description)
Parameters:
publicId - group ID returned from getUserProjects
name - New group name.
colorCode - New Color Code
description - New Description.

deleteUserProject

public void deleteUserProject(java.lang.String publicId)
Parameters:
publicId - group ID returned from getUserProjects

addReceiptToUserProject

public void addReceiptToUserProject(java.lang.String publicId,
                                    java.lang.String rid)
Parameters:
publicId - group ID returned from getUserProjects
rid - rid of the receipt. This API will associate receipt with the group.

deleteReceiptFromUserProject

public void deleteReceiptFromUserProject(java.lang.String publicId,
                                         java.lang.String rid)
Parameters:
publicId - group ID returned from getUserProjects
rid - rid of the receipt. This API will remove one receipt from the group.

getChatHistoryForFranchise

public void getChatHistoryForFranchise(int idFranchise)
Parameters:
idFranchise - if of a Franchise.

getChatHistoryForStore

public void getChatHistoryForStore(int idStore)
Parameters:
idStore - id of the Store.

getChatHistoryForProduct

public void getChatHistoryForProduct(int idProduct)
Parameters:
idProduct - Product ID

getChatHistoryForReceipt

public void getChatHistoryForReceipt(java.lang.String rid)
Parameters:
rid - Receipt RID

getChatHistoryForReceiptProduct

public void getChatHistoryForReceiptProduct(java.lang.String rid,
                                            int idProduct)
Parameters:
rid - Receipt RID
idProduct - Product ID Get the chat history for a production within a receipt context

addNewTextChat

public void addNewTextChat(int idPost,
                           java.lang.String text)
Parameters:
idPost - POST ID from above getChatHistory call
text - text value of the new chat content.

addNewImageChat

public void addNewImageChat(int idPost,
                            android.graphics.Bitmap bmp)
Parameters:
idPost - POST ID from above getChatHistory call
bmp - Bitmap of the new chat content

clearReceiptsCache

public void clearReceiptsCache(int page)
Parameters:
page - page number of the receipts list, we will evict cache result for this page.

getOfflinePendingReceipts

public ProximiantApiResult getOfflinePendingReceipts(android.content.Context context)
Parameters:
context - required to store info on persistent storage. Will return ProximiantApiResult to represent a list of pending picture receipts stored locally. once a picture receipt is registered online, it will be removed from this local persistent store, and calling this function again will not include those receipts.

getReceipts

public void getReceipts(int page)
Parameters:
page - page number to retrieve desired receipts list, start from 1.

getReceiptsForUserProject

public void getReceiptsForUserProject(java.lang.String publicId,
                                      int page)
Calls get for receipts associated to the user project id

Parameters:
publicId - user project Id
page - page number to retrieve desired receipts list

getReceiptByRid

public void getReceiptByRid(java.lang.String rid)
Parameters:
rid - receipt id

deleteReceipt

public void deleteReceipt(java.lang.String rid)
Parameters:
rid - receipt id

registerReceipt

public void registerReceipt(java.lang.String rid)
Parameters:
rid - receipt id

registerGcmId

public void registerGcmId(java.lang.String gcmId)
Parameters:
gcmId - google cloud message regist id for current device.

searchReceipts

public void searchReceipts(java.lang.String query,
                           int page)
Parameters:
query - text query to search receipt
page - offset of the search

decodeB64String

public java.lang.String decodeB64String(java.lang.String b64String)
Parameters:
b64String - String in Base 64 format
Returns:
decoded UTF-8 Text

b64EncodeString

public java.lang.String b64EncodeString(java.lang.String text)
Parameters:
text - to be encoded
Returns:
base 64 encoded string

b64EncodeBitmap

public java.lang.String b64EncodeBitmap(android.graphics.Bitmap bmp)
Parameters:
bmp - Bitmap to be encoded.
Returns:
base 64 string for the JPEG representation of the bitmap.

generatePhotoThumbnail

public android.graphics.Bitmap generatePhotoThumbnail(android.graphics.Bitmap bmp)
Parameters:
bmp - Bitmap to work on.
Returns:
80x80 thumbnail image.

urlEncode

public java.lang.String urlEncode(java.lang.String value)
Parameters:
value - Text to be url encoded.
Returns:
url encoded text

logout

public void logout()

checkProxAuth

public void checkProxAuth(android.content.Context context,
                          java.lang.String cId,
                          java.lang.String secret)
Parameters:
context - Activity context
cId - Client ID we distribute to the client/developer.
secret - Client Secret we distribute to the client/developer.

getAccessTokenByRefreshToken

public void getAccessTokenByRefreshToken(java.lang.String refreshToken,
                                         java.lang.String clientId,
                                         java.lang.String clientSecret)
Parameters:
refreshToken - Refresh Token from last Access Token request.
clientId - Client ID Proximiant distributed.
clientSecret - Client Secret Proximiant distributed.

getAccessTokenByFacebookToken

public void getAccessTokenByFacebookToken(java.lang.String fbToken,
                                          java.lang.String clientId)
Parameters:
fbToken - Facebook Access Token from Facebook SDK
clientId - Client ID Proximiant distributed to client/developer.