package com.shaweibo.biu.dao.post;
import android.util.Log;
import com.shaweibo.biu.dao.HttpUtility;
import com.shaweibo.biu.dao.WeiboParameters;
import org.json.JSONArray;
import org.json.JSONObject;
import static com.shaweibo.biu.BuildConfig.DEBUG;
public abstract class BasePostDao
{
private static final String TAG = BasePostDao.class.getSimpleName();
// Http Methods
protected static final String HTTP_GET = HttpUtility.GET;
protected static final String HTTP_POST = HttpUtility.POST;
// Access Token
private static String mAccessToken;
public static JSONObject request(String url, WeiboParameters params, String method) throws Exception {
return request(mAccessToken, url, params, method, JSONObject.class);
}
public static JSONArray requestArray(String url, WeiboParameters params, String method) throws Exception {
return request(mAccessToken, url, params, method, JSONArray.class);
}
public static <T> T request(String token, String url, WeiboParameters params, String method, Class<T> jsonClass) throws Exception {
if (token == null) {
return null;
} else {
params.put("access_token", token);
String jsonData = HttpUtility.doRequest(url, params, method);
if (DEBUG) {
Log.d(TAG, "jsonData = " + jsonData);
}
if (jsonData != null && (jsonData.contains("{") || jsonData.contains("["))) {
return jsonClass.getConstructor(String.class).newInstance(jsonData);
} else {
return null;
}
}
}
public static JSONObject requestWithoutAccessToken(String url, WeiboParameters params, String method) throws Exception {
String jsonData = HttpUtility.doRequest(url, params, method);
if (DEBUG) {
Log.d(TAG, "jsonData = " + jsonData);
}
if (jsonData != null && jsonData.contains("{")) {
return new JSONObject(jsonData);
} else {
return null;
}
}
public static String getAccessToken() {
return mAccessToken;
}
public static void setAccessToken(String token) {
mAccessToken = token;
}
}