package com.closedcircles.client;
import android.content.Context;
import org.apache.http.client.CookieStore;
import org.apache.http.client.params.ClientPNames;
import org.apache.http.cookie.Cookie;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.PersistentCookieStore;
import com.loopj.android.http.RequestParams;
public class WebConnection {
private final static String SERVICE_HOST = "http://closedcircles.com";
public final static String PATH_AUTH = "/auth";
public final static String PATH_AUTH_GOOGLE = "/googleauth";
public final static String PATH_JOINROOM = "/api/joinroom";
public final static String PATH_CIRCLESTATE = "/api/getcirclestate";
public final static String PATH_UPDATES = "/chat/updates";
public final static String PATH_NEW = "/chat/new";
public final static String PATH_EDIT = "/chat/edit";
public final static String PATH_SETREADMARKER = "/chat/setreadmarker";
public final static String PATH_FETCH_THREAD = "/api/fetchthread";
public final static String PARAM_XSRF_TOKEN = "_xsrf";
public final static String PARAM_ACCESS_TOKEN = "accessToken";
public final static String PARAM_GOOGLE_ACCESS_TOKEN = "access_token";
public final static String PARAM_HISTORY_LENGTH = "history_length";
public final static String PARAM_CIRCLE = "circle";
public final static String PARAM_THREAD_ID = "threadid";
public final static String PARAM_NOTIFICATION_CURSOR = "notificationCursor";
public final static String PARAM_VERSION = "version";
public final static String PARAM_SERVER_VERSION = "serverVersion";
public final static String PARAM_BODY = "body";
public final static String PARAM_MSGID = "msgId";
public final static String PARAM_PARENT_MESSAGE_ID = "parent_msg_id";
public final static String PARAM_TARGET_USER_ID = "targetUserId";
public final static String PARAM_TYPE = "type";
public final static String PARAM_VISIBLE_COUNT = "voc";
public final static String PARAM_OPEN_ID = "open";
public final static String PARAM_READ_STATUS = "readStatus";
public final static String PARAM_LOCAL_DATA = "localData";
private static AsyncHttpClient sClient = new AsyncHttpClient();
private static PersistentCookieStore myCookieStore = null;
public static void create(Context context) {
if ( myCookieStore == null ){
myCookieStore = new PersistentCookieStore(context);
sClient.setCookieStore(myCookieStore);
sClient.getHttpClient().getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);
sClient.setTimeout(60000);
}
}
public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
sClient.get(getAbsoluteUrl(url), params, responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
sClient.post(getAbsoluteUrl(url), params, responseHandler);
}
public static String cookie(String name) {
for (Cookie cookie: myCookieStore.getCookies()) {
if (cookie.getName().equals(name)) {
return cookie.getValue();
}
}
return null;
}
private static String getAbsoluteUrl(String relativeUrl) {
return SERVICE_HOST + relativeUrl;
}
}