package com.mobmonkey.mobmonkeysdk.adapters;
import java.io.UnsupportedEncodingException;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.json.JSONException;
import android.util.Log;
import com.mobmonkey.mobmonkeysdk.asynctasks.MMDeleteAsyncTask;
import com.mobmonkey.mobmonkeysdk.asynctasks.MMGetAsyncTask;
import com.mobmonkey.mobmonkeysdk.asynctasks.MMPostAsyncTask;
import com.mobmonkey.mobmonkeysdk.utils.MMSDKConstants;
import com.mobmonkey.mobmonkeysdk.utils.MMAdapter;
import com.mobmonkey.mobmonkeysdk.utils.MMCallback;
public class MMFavoritesAdapter extends MMAdapter {
private final static String TAG = "MMFavorites";
private static MMGetAsyncTask mmGetAsyncTask;
/**
* Private class to prevent the instantiation of this class outside the scope of this class
*/
private MMFavoritesAdapter() {
throw new AssertionError();
}
/**
*
* @param mmCallback
* @param locationId
* @param providerId
* @param partnerId
* @param user
* @param auth
*/
public static void addFavorite(MMCallback mmCallback,
String locationId,
String providerId) {
createUriBuilderInstance(MMSDKConstants.URI_PATH_FAVORITES);
createParamsInstance();
Log.d(TAG, TAG + "uri: " + uriBuilder.toString());
try {
params.put(MMSDKConstants.JSON_KEY_LOCATION_ID, locationId);
params.put(MMSDKConstants.JSON_KEY_PROVIDER_ID, providerId);
Log.d(TAG, TAG + "params: " + params.toString());
HttpPost httpPost = newHttpPostInstance();
StringEntity stringEntity = new StringEntity(params.toString());
httpPost.setEntity(stringEntity);
new MMPostAsyncTask(mmCallback).execute(httpPost);
} catch(JSONException ex) {
ex.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
/**
*
* @param mmCallback
*/
public static void getFavorites(MMCallback mmCallback) {
createUriBuilderInstance(MMSDKConstants.URI_PATH_FAVORITES);
HttpGet httpGet = newHttpGetInstance();
mmGetAsyncTask = new MMGetAsyncTask(mmCallback);
mmGetAsyncTask.execute(httpGet);
}
/**
*
* @param mmCallback
* @param locationId
* @param providerId
* @param partnerId
* @param user
* @param auth
*/
public static void removeFavorite(MMCallback mmCallback,
String locationId,
String providerId) {
createUriBuilderInstance(MMSDKConstants.URI_PATH_FAVORITES);
uriBuilder.appendQueryParameter(MMSDKConstants.JSON_KEY_LOCATION_ID, locationId)
.appendQueryParameter(MMSDKConstants.JSON_KEY_PROVIDER_ID, providerId);
HttpDelete httpDelete = newHttpDeleteInstance();
new MMDeleteAsyncTask(mmCallback).execute(httpDelete);
}
/**
*
*/
public static void cancelGetFavorites() {
if(mmGetAsyncTask != null) {
if(!mmGetAsyncTask.isCancelled()) {
mmGetAsyncTask.cancel(true);
}
}
}
}