/* “Copyright 2012 Megam Systems” This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.megam.deccanplato.provider.controller; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.net.URLDecoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringEscapeUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.megam.deccanplato.provider.core.CloudMediator; import org.megam.deccanplato.provider.core.CloudMediatorException; import org.megam.deccanplato.provider.core.RequestData; import org.megam.deccanplato.provider.core.RequestDataBuilder; import org.megam.deccanplato.provider.core.ResponseData; import org.megam.deccanplato.provider.core.SendBackResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import org.megam.deccanplato.provider.salesforce.crm.info.User; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import com.amazonaws.util.json.JSONException; import com.amazonaws.util.json.JSONObject; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @Controller public class CRM extends Connector { private static final String clz = "CRM:"; private final Logger logger = LoggerFactory.getLogger(CRM.class); public CRM() { } /*@RequestMapping(value = "provider/crm", method = RequestMethod.POST) @ResponseStatus(HttpStatus.CREATED) public @ResponseBody String create(@RequestBody String inputAsJson) throws CloudMediatorException, UnsupportedEncodingException { logger.info("\n\n-->entry"); String decode_input = urlDecoder(inputAsJson); //String str = StringEscapeUtils.escapeHtml4(inputAsJson); //logger.info("\n\n-->"+str); //logger.info("\n\n-->"+StringEscapeUtils.escapeJava(inputAsJson)); logger.info(clz + "create : POST start.\n" + decode_input); // This is how the new code will work. RequestDataBuilder rdb = new RequestDataBuilder(decode_input); RequestData reqdat = rdb.data(); CloudMediator mediator = mediator(reqdat); SendBackResponse respdat = mediator.handleRequest(); System.out.println("output json-->"+respdat.toString()); return "Hello"; // throw new CloudMediatorException("testing", new Exception("error")); }*/ @RequestMapping(value = "provider/crm", method = RequestMethod.POST) public @ResponseBody String create(@RequestBody String inputAsJson) throws CloudMediatorException, UnsupportedEncodingException, JSONException { logger.info("\n\n-->entry"); //String decode_input = urlDecoder(inputAsJson); //String decode_input = inputAsJson.replaceAll("\\", null); //String decode_input = StringEscapeUtils.escapeJava(inputAsJson); logger.info(clz + "create : POST start.\n" + inputAsJson); // This is how the new code will work. RequestDataBuilder rdb = new RequestDataBuilder(inputAsJson); RequestData reqdat = rdb.data(); CloudMediator mediator = mediator(reqdat); SendBackResponse respdat = mediator.handleRequest(); System.out.println("output json-->"+respdat.toString()); Gson gson=new Gson(); String output_json = gson.toJson(respdat, ResponseData.class); System.out.println("output json-->"+output_json); return output_json; } @RequestMapping(value = "provider/crm/list", method = RequestMethod.GET, produces = "application/json") public @ResponseBody String list(@RequestBody String inputAsJson) throws UnsupportedEncodingException { String decode_input = urlDecoder(inputAsJson); logger.info(clz + "List : POST start.\n" + decode_input); // This is how the new code will work. RequestDataBuilder rdb = new RequestDataBuilder(decode_input); RequestData reqdat = rdb.data(); CloudMediator mediator = mediator(reqdat); SendBackResponse respdat = null; try { respdat = mediator.handleRequest(); System.out.println("output json-->"+respdat.toString()); } catch (CloudMediatorException e) { // TODO Auto-generated catch block e.printStackTrace(); } return respdat.toString(); } }