package com.mobmonkey.mobmonkeysdk.adapters;
import java.io.UnsupportedEncodingException;
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.MMPostAsyncTask;
import com.mobmonkey.mobmonkeysdk.utils.MMSDKConstants;
import com.mobmonkey.mobmonkeysdk.utils.MMAdapter;
import com.mobmonkey.mobmonkeysdk.utils.MMCallback;
/**
* @author Dezapp, LLC
*
*/
public class MMMakeARequestAdapter extends MMAdapter {
private static final String TAG = "MMSendRequestAdapter: ";
/**
* Private class to prevent the instantiation of this class outside the scope of this class
*/
private MMMakeARequestAdapter() {
throw new AssertionError();
}
/**
*
* @param mmCallback
* @param message
* @param scheduleDate
* @param providerId
* @param locationId
* @param duration
* @param repeating
* @param mediaType
*/
public static void makeARequest(MMCallback mmCallback,
String message,
String scheduleDate,
String providerId,
String locationId,
int duration,
String repeating,
String mediaType) {
createUriBuilderInstance(MMSDKConstants.URI_PATH_REQUESTMEDIA, mediaType);
createParamsInstance();
Log.d(TAG, TAG + "uri: " + uriBuilder.toString());
try {
params.put(MMSDKConstants.JSON_KEY_MESSAGE, message);
params.put(MMSDKConstants.JSON_KEY_SCHEDULE_DATE, scheduleDate);
params.put(MMSDKConstants.JSON_KEY_PROVIDER_ID, providerId);
params.put(MMSDKConstants.JSON_KEY_LOCATION_ID, locationId);
params.put(MMSDKConstants.JSON_KEY_DURATION, duration);
if(repeating.equals(MMSDKConstants.REQUEST_REPEAT_RATE_NONE)) {
params.put(MMSDKConstants.JSON_KEY_RECURRING, 0);
} else {
params.put(MMSDKConstants.JSON_KEY_RECURRING, true);
long freq = MMSDKConstants.REQUEST_FREQUENCY_DAILY; //TODO: Change these to calculated values. This is miliseconds in a day for Daily repeat.
if(repeating.equals(MMSDKConstants.REQUEST_REPEAT_RATE_WEEKLY))
freq = MMSDKConstants.REQUEST_FREQUENCY_WEEKLY;
if(repeating.equals(MMSDKConstants.REQUEST_REPEAT_RATE_MONTHLY))
freq = MMSDKConstants.REQUEST_FREQUENCY_MONTHLY;
params.put(MMSDKConstants.JSON_KEY_FREQUENCY_IN_MS, freq);
}
HttpPost httpPost = newHttpPostInstance();
StringEntity stringEntity = new StringEntity(params.toString());
httpPost.setEntity(stringEntity);
new MMPostAsyncTask(mmCallback).execute(httpPost);
} catch(JSONException ex) {
} catch(UnsupportedEncodingException ex) {
}
}
}