Rev 4976 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.web;import java.util.ArrayList;import java.util.Arrays;import java.util.Calendar;import java.util.Date;import java.util.List;import java.util.TimeZone;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import com.google.appengine.api.datastore.DatastoreService;import com.google.appengine.api.datastore.DatastoreServiceFactory;import com.google.appengine.api.datastore.Entity;public class AddDataLogServlet extends HttpServlet {private static final long serialVersionUID = -8236918415987438049L;public static final List<String> indexedPropertyList =Arrays.asList("date","eventType","sessionId","query","email");public void doPost(HttpServletRequest req, HttpServletResponse resp) {Entity entity = new Entity("DataLog");entity.setUnindexedProperty("logTime", new Date());setTime(req, entity);setEventType(req, entity);setSessionId(req, entity);setUserId(req, entity);setEmail(req, entity);setLogData(req, entity);DatastoreService ds = DatastoreServiceFactory.getDatastoreService();ds.put(entity);}public void doGet(HttpServletRequest req, HttpServletResponse resp) {doPost(req, resp);}private void setTime(HttpServletRequest req, Entity entity) {Date date = new Date(Long.valueOf(req.getParameter("time")));entity.setProperty("date", date);Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("IST"));cal.setTime(date);cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.SECOND, 0);cal.set(Calendar.MILLISECOND, 0);entity.setProperty("shortdate", cal.getTime());}private void setEventType(HttpServletRequest req, Entity entity) {entity.setProperty("eventType", req.getParameter("eventType"));}private void setSessionId(HttpServletRequest req, Entity entity) {entity.setProperty("sessionId", req.getParameter("sessionId"));}private void setUserId(HttpServletRequest req, Entity entity) {Integer userId = 0;try {userId = Integer.valueOf(req.getParameter("userId"));}catch (NumberFormatException e) {}entity.setProperty("userId", userId);}private void setEmail(HttpServletRequest req, Entity entity) {entity.setProperty("email", req.getParameter("email"));}private void setLogData(HttpServletRequest req, Entity entity) {try {String jsonLogData = req.getParameter("jsonLogData");if (jsonLogData == null) {return;}JSONObject logDataJson = new JSONObject(req.getParameter("jsonLogData"));for (String key : JSONObject.getNames(logDataJson)) {if (key.endsWith("_long_list")) {JSONArray vals = logDataJson.getJSONArray(key);List<Long> lVals = new ArrayList<Long>();for (int i = 0; i<vals.length(); i++) {lVals.add(vals.getLong(i));}if(!indexedPropertyList.contains(key.replace("_long_list", ""))){entity.setUnindexedProperty(key.replace("_long_list", ""), lVals);}else {entity.setProperty(key.replace("_long_list", ""), lVals);}} else if (key.endsWith("_long")) {if(!indexedPropertyList.contains(key.replace("_long", ""))){entity.setUnindexedProperty(key.replace("_long", ""), logDataJson.getLong(key));}else {entity.setProperty(key.replace("_long", ""), logDataJson.getLong(key));}}else {if(!indexedPropertyList.contains(key)){entity.setUnindexedProperty(key, logDataJson.getString(key));}else {entity.setProperty(key, logDataJson.getString(key));}}}} catch (JSONException e) {e.printStackTrace();}}}