package org.Webgatherer.Controller.Api;
import com.google.gson.Gson;
import org.Webgatherer.Utility.Service.WebServiceClient;
import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.ObjectMapper;
/**
* @author Rick Dane
*/
public class BaseApiCommunication {
private static final Gson gson = new Gson();
private static String apiHeader = "application/json";
protected static <T> T apiPost(Object inputObj, String endPoint, Class<T> clazz) {
String jsonStr = gson.toJson(inputObj);
WebServiceClient webService = new WebServiceClient(endPoint);
String apiResponse = webService.servicePost("", jsonStr, apiHeader);
T object = null;
try {
object = deserializeFromJson(apiResponse, clazz);
} catch (Exception e) {
}
return object;
}
protected static <T> void apiPost(Object inputObj, String endPoint) {
String jsonStr = gson.toJson(inputObj);
WebServiceClient webService = new WebServiceClient(endPoint);
String apiResponse = webService.servicePost("", jsonStr, apiHeader);
}
protected static <T> void apiPut(Object inputObj, String endPoint) {
String jsonStr = gson.toJson(inputObj);
WebServiceClient webService = new WebServiceClient(endPoint);
String apiResponse = webService.servicePut("", jsonStr, apiHeader);
}
private static <T> T deserializeFromJson(String response, Class<T> clazz) {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
T object = null;
try {
object = mapper.readValue(response, clazz);
} catch (Exception e) {
//e.printStackTrace();
}
return object;
}
}