Subversion Repositories SmartDukaan

Rev

Rev 3532 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2620 vikas 1
package in.shop2020.web;
2
 
3
import java.util.ArrayList;
4976 amar.kumar 4
import java.util.Arrays;
3193 vikas 5
import java.util.Calendar;
2620 vikas 6
import java.util.Date;
7
import java.util.List;
3193 vikas 8
import java.util.TimeZone;
2620 vikas 9
 
10
import javax.servlet.http.HttpServlet;
11
import javax.servlet.http.HttpServletRequest;
12
import javax.servlet.http.HttpServletResponse;
13
 
14
import org.json.JSONArray;
15
import org.json.JSONException;
16
import org.json.JSONObject;
17
 
18
import com.google.appengine.api.datastore.DatastoreService;
19
import com.google.appengine.api.datastore.DatastoreServiceFactory;
20
import com.google.appengine.api.datastore.Entity;
21
 
22
public class AddDataLogServlet extends HttpServlet {
23
    private static final long serialVersionUID = -8236918415987438049L;
4976 amar.kumar 24
    public static final List<String> indexedPropertyList =
25
        Arrays.asList("date","eventType","sessionId","query","itemId","itemIds","email","shortdate");
3532 vikas 26
 
2620 vikas 27
    public void doPost(HttpServletRequest req, HttpServletResponse resp) {
28
        Entity entity = new Entity("DataLog");
4976 amar.kumar 29
        entity.setUnindexedProperty("logTime", new Date());
2620 vikas 30
 
31
        setTime(req, entity);
32
        setEventType(req, entity);
33
        setSessionId(req, entity);
34
        setUserId(req, entity);
35
        setEmail(req, entity);
36
        setLogData(req, entity);
37
 
3532 vikas 38
        DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
39
        ds.put(entity);
2620 vikas 40
    }
41
 
42
    public void doGet(HttpServletRequest req, HttpServletResponse resp) {
43
        doPost(req, resp);
44
    }
45
 
46
    private void setTime(HttpServletRequest req, Entity entity) {
3193 vikas 47
        Date date = new Date(Long.valueOf(req.getParameter("time")));
48
        entity.setProperty("date", date);
49
 
50
        Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("IST"));
51
        cal.setTime(date);
52
        cal.set(Calendar.HOUR_OF_DAY, 0);
53
        cal.set(Calendar.MINUTE, 0);  
54
        cal.set(Calendar.SECOND, 0);  
55
        cal.set(Calendar.MILLISECOND, 0);
56
        entity.setProperty("shortdate", cal.getTime());
2620 vikas 57
    }
58
 
59
    private void setEventType(HttpServletRequest req, Entity entity) {
60
        entity.setProperty("eventType", req.getParameter("eventType"));
61
    }
62
 
63
    private void setSessionId(HttpServletRequest req, Entity entity) {
64
        entity.setProperty("sessionId", req.getParameter("sessionId"));
65
    }
66
 
67
    private void setUserId(HttpServletRequest req, Entity entity) {
68
        Integer userId = 0;
69
        try {
70
            userId = Integer.valueOf(req.getParameter("userId"));
71
        }
72
        catch (NumberFormatException e) {
73
        }
74
        entity.setProperty("userId", userId);
75
    }
76
 
77
    private void setEmail(HttpServletRequest req, Entity entity) {
78
        entity.setProperty("email", req.getParameter("email"));
79
    }
80
 
81
    private void setLogData(HttpServletRequest req, Entity entity) {
82
        try {
83
            String jsonLogData = req.getParameter("jsonLogData");
84
            if (jsonLogData == null) {
85
                return;
86
            }
87
            JSONObject logDataJson = new JSONObject(req.getParameter("jsonLogData"));
88
            for (String key : JSONObject.getNames(logDataJson)) {
89
                if (key.endsWith("_long_list")) {
90
                    JSONArray vals = logDataJson.getJSONArray(key);
91
                    List<Long> lVals = new ArrayList<Long>();
92
                    for (int i = 0; i<vals.length(); i++) {
93
                        lVals.add(vals.getLong(i));
94
                    }
4976 amar.kumar 95
                    if(!indexedPropertyList.contains(key.replace("_long_list", ""))){
96
                    	entity.setUnindexedProperty(key.replace("_long_list", ""), lVals);
97
                    }else {
98
                    	entity.setProperty(key.replace("_long_list", ""), lVals);
99
                    }
2620 vikas 100
                } else if (key.endsWith("_long")) {
4976 amar.kumar 101
                	if(!indexedPropertyList.contains(key.replace("_long", ""))){
102
                		entity.setUnindexedProperty(key.replace("_long", ""), logDataJson.getLong(key));
103
                	}else {
104
                		entity.setProperty(key.replace("_long", ""), logDataJson.getLong(key));
105
                	}
2620 vikas 106
                }
107
                else {
4976 amar.kumar 108
                	if(!indexedPropertyList.contains(key)){
109
                		entity.setUnindexedProperty(key, logDataJson.getString(key));
110
                	}else {
111
                		entity.setProperty(key, logDataJson.getString(key));
112
                	}
2620 vikas 113
                }
114
            }
115
        } catch (JSONException e) {
116
            e.printStackTrace();
117
        }
118
    }
119
}