package com.jasonchen.microlang.dao;
import com.jasonchen.microlang.utils.GlobalContext;
import com.jasonchen.microlang.utils.http.HttpMethod;
import com.jasonchen.microlang.utils.http.HttpUtility;
import com.jasonchen.microlang.utils.http.URLHelper;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
import com.jasonchen.microlang.exception.WeiboException;
/**
* jasonchen
* 2015/04/10
*/
public class TopicDao {
private String access_token;
public TopicDao(String token) {
this.access_token = token;
}
public boolean follow(String trend_name) throws WeiboException {
String url = URLHelper.TOPIC_FOLLOW;
Map<String, String> map = new HashMap<String, String>();
map.put("access_token", GlobalContext.getInstance().getSpecialBlackToken());
map.put("trend_name", trend_name);
String jsonData = HttpUtility.getInstance().executeNormalTask(HttpMethod.Post, url, map);
try {
JSONObject jsonObject = new JSONObject(jsonData);
Integer id = jsonObject.optInt("topicid", -1);
if (id > 0) {
return true;
} else {
return false;
}
} catch (JSONException e) {
}
return false;
}
public boolean destroy(String trend_name) throws WeiboException {
String url = URLHelper.TOPIC_RELATIONSHIP;
Map<String, String> map = new HashMap<String, String>();
map.put("access_token", access_token);
map.put("trend_name", trend_name);
String jsonData = HttpUtility.getInstance().executeNormalTask(HttpMethod.Get, url, map);
try {
JSONObject jsonObject = new JSONObject(jsonData);
boolean isFollowing = jsonObject.optBoolean("is_follow", false);
if (!isFollowing) {
return false;
}
String trend_id = jsonObject.optString("trend_id", "");
url = URLHelper.TOPIC_DESTROY;
map = new HashMap<String, String>();
map.put("access_token", access_token);
map.put("trend_id", trend_id);
jsonData = HttpUtility.getInstance().executeNormalTask(HttpMethod.Post, url, map);
try {
jsonObject = new JSONObject(jsonData);
return jsonObject.optBoolean("result", false);
} catch (JSONException e) {
}
return false;
} catch (JSONException e) {
}
return false;
}
}