Subversion Repositories SmartDukaan

Rev

Rev 3193 | Go to most recent revision | Details | Last modification | View Log | RSS feed

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