package com.chinaece.gaia.http;
import java.util.Collection;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;
import com.chinaece.gaia.constant.Gaia;
import com.chinaece.gaia.parsers.AppParser;
import com.chinaece.gaia.parsers.BossTrackParser;
import com.chinaece.gaia.parsers.CalendarParsers;
import com.chinaece.gaia.parsers.ContactParser;
import com.chinaece.gaia.parsers.DocumentParser;
import com.chinaece.gaia.parsers.PendingParser;
import com.chinaece.gaia.parsers.UserParser;
import com.chinaece.gaia.parsers.WeatherParser;
import com.chinaece.gaia.types.AppType;
import com.chinaece.gaia.types.BossTrackingType;
import com.chinaece.gaia.types.CalendarType;
import com.chinaece.gaia.types.ContactType;
import com.chinaece.gaia.types.DocumentType;
import com.chinaece.gaia.types.GaiaType;
import com.chinaece.gaia.types.PendingType;
import com.chinaece.gaia.types.UserType;
import com.chinaece.gaia.types.WeatherType;
public class OAHttpApi extends AbstractHttpAPI implements HttpAPI{
private String url;
@SuppressWarnings("unused")
private OAHttpApi(){}
public OAHttpApi(String url){
this.url = url;
}
public UserType getToken(String user, String password, String domain){
HttpGet get = createHttpGet(url+"/client/getToken.action", new BasicNameValuePair("user", user), new BasicNameValuePair("pwd", password), new BasicNameValuePair("domain", domain));
Collection<? extends GaiaType> rst = doRequest(get, new UserParser());
if(rst != null){
Collection<UserType> users = (Collection<UserType>)rst;
return users.iterator().next();
}
return null;
}
public boolean getApps(String token){
HttpGet get = createHttpGet(url+"/client/getApps.action",new BasicNameValuePair("token",token));
Collection<? extends GaiaType> rst = doRequest(get, new AppParser(),true);
if(rst != null){
Collection<AppType> apps = (Collection<AppType>)rst;
Gaia.APPLIST = apps;
return true;
}
return false;
}
public Collection<PendingType> getPending(String token,String appids){
HttpGet get = createHttpGet(url+"/client/getPendings.action",new BasicNameValuePair("token", token),new BasicNameValuePair("params", appids));
Collection<? extends GaiaType> rst = doRequest(get, new PendingParser());
if(rst!=null)
return (Collection<PendingType>)rst;
return null;
}
public DocumentType getDocument(String token,String document){
HttpGet get = createHttpGet(url+"/client/getDocument.action",new BasicNameValuePair("token",token),new BasicNameValuePair("params",document));
Collection<?extends GaiaType> rst = doRequest(get, new DocumentParser());
if(rst!=null)
return (DocumentType)rst.iterator().next();
return null;
}
public Collection<ContactType> getContact(String token,String search){
HttpGet get = createHttpGet(url+"/client/getContacts.action",new BasicNameValuePair("token",token),new BasicNameValuePair("params",search));
Collection<?extends GaiaType> rst = doRequest(get, new ContactParser());
if(rst!=null)
return (Collection<ContactType>)rst;
return null;
}
public Collection<WeatherType> getWeather(){
HttpGet get = createHttpGet(url+"/client/getWeather.action");
Collection<? extends GaiaType> rst = doRequest(get, new WeatherParser(),true);
if(rst != null){
return(Collection<WeatherType>)rst;
}
return null;
}
public boolean saveDocumnet(String token,String save ){
HttpPost post = createHttpPost(url+"/client/saveDocument.action",new BasicNameValuePair("token", token),new BasicNameValuePair("params",save ));
String rst = doRequest(post);
try {
if(rst == null)
return false;
JSONObject flag = new JSONObject(rst);
return flag.getBoolean("result");
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public boolean submitDocumnet(String token,String submit ){
HttpPost post = createHttpPost(url+"/client/submitDocument.action",new BasicNameValuePair("token", token),new BasicNameValuePair("params",submit));
String rst = doRequest(post);
try {
if(rst == null)
return false;
JSONObject flag = new JSONObject(rst);
return flag.getBoolean("result");
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public Collection<BossTrackingType> getBossTrack(){
HttpPost post = createHttpPost(url+"/client/getBossTracking.action");
Collection<? extends GaiaType> rst = doRequest(post,new BossTrackParser());
if(rst != null){
return(Collection<BossTrackingType>)rst;
}
return null;
}
public Collection<CalendarType> getBossCalendar(String token , String start ,String end){
HttpGet get = createHttpGet(url+"/client/getBossCalendar.action",new BasicNameValuePair("token", token),new BasicNameValuePair("start", start),new BasicNameValuePair("end", end));
Collection<? extends GaiaType> rst = doRequest(get,new CalendarParsers());
if(rst != null){
return(Collection<CalendarType>)rst;
}
return null;
}
//日程新建
public boolean newBbuild(String token,String document){
HttpGet post = createHttpGet(url+"/client/newDocument.action",new BasicNameValuePair("token", token),new BasicNameValuePair("params",document));
String rst = doRequest(post);
try {
if(rst == null)
return false;
JSONObject flag = new JSONObject(rst);
return flag.getBoolean("result");
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}