Subversion Repositories SmartDukaan

Rev

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