package com.codecomb.infrastructure.wabapi.net;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.util.Log;
import com.codecomb.exceptions.AppException;
import com.codecomb.module.base.Base;
import com.codecomb.module.clarifications.Clarification;
import com.codecomb.module.contacts.Contact;
import com.codecomb.module.contests.Contest;
import com.codecomb.module.im.Message;
import com.codecomb.module.login.Auth;
import com.codecomb.module.profile.Profile;
import com.codecomb.utils.GsonUtils;
public class ApiClient {
private static final String TAG = ApiClient.class.getSimpleName();
public static Auth auth(Context context, String username, String passsword)
throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Username", username);
params.put("Password", passsword);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("Auth"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Auth.class);
}
public static Base responseClarification(Context context,
String accessToken, int clarID, String answer, int status)
throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
params.put("ClarID", clarID);
params.put("Status", status);
params.put("Answer", answer);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("ResponseClarification"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Base.class);
}
public static Profile getProfile(Context context, String accessToken)
throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("GetProfile"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Profile.class);
}
public static Contact findContacts(Context context, String accessToken,
String nickName) throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
params.put("Nickname", nickName);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("FindContacts"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Contact.class);
}
public static Base registPushService(Context context, String accessToken,
String divceToken) throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
params.put("DeviceType", 1);
params.put("DeviceToken", divceToken);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("FindContacts"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Base.class);
}
public static Base broadCast(Context context, String accessToken,
String message) throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
params.put("Message", message);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("BroadCast"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Base.class);
}
public static List<Contact> getContacts(Context context, String accessToken)
throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("GetContacts"), params);
Log.e(TAG, "Contact:" + jsonRsp);
return GsonUtils.createGson().fromJson(jsonRsp, Contact.class)
.getContacts();
}
public static List<Contest> getContests(Context context, String accessToken)
throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("GetContests"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Contest.class)
.getContests();
}
public static List<Contest> getContests(Context context,
String accessToken, int page) throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
params.put("Page", page);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("GetContests"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Contest.class).getContests();
}
public static List<Contest> getManagerContests(Context context,
String accessToken, int page) throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
params.put("Page", page);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("GetManagedContests"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Contest.class)
.getContests();
}
public static List<Contest> getManagerContests(Context context,
String accessToken) throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("GetManagedContests"), params);
Log.e(TAG, "ManagerContests:" + jsonRsp);
return GsonUtils.createGson().fromJson(jsonRsp, Contest.class)
.getContests();
}
public static List<Message> getChatRecords(Context context,
String accessToken, int userID) throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
params.put("UserID", userID);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("GetChatRecords"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Message.class)
.getMessages();
}
public static Base sendMessage(Context context, String accessToken,
int userID, String content) throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
params.put("UserID", userID);
params.put("Content", content);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("SendMessage"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Base.class);
}
public static Base loginByBarCode(Context context, String accessToken,
String barCode) throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
params.put("BarCode", barCode);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("LoginByBarCode"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Base.class);
}
public static List<Clarification> getClarifications(Context context,
String accessToken, int contestId) throws AppException {
Map<String, Object> params = new HashMap<String, Object>();
params.put("Token", accessToken);
params.put("ContestID", contestId);
String jsonRsp = NetClientFactory.getClient().doPost(context,
getRequestUrl("GetClarifications"), params);
return GsonUtils.createGson().fromJson(jsonRsp, Clarification.class).getClarifications();
}
private static String getRequestUrl(String revUrl) {
return Constants.BASE_ADDRESS_TERMINAL_SERVICE + revUrl;
}
}