Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2988 varun.gupt 1
package in.shop2020.web;
2
 
3
import java.io.IOException;
4
import java.util.HashMap;
5
import java.util.Map;
6
 
7
import javax.servlet.http.HttpServlet;
8
import javax.servlet.http.HttpServletRequest;
9
import javax.servlet.http.HttpServletResponse;
10
 
11
import org.json.JSONObject;
12
 
13
import com.google.appengine.api.datastore.DatastoreServiceFactory;
14
import com.google.appengine.api.datastore.DatastoreService;
15
import com.google.appengine.api.datastore.Entity;
16
import com.google.appengine.api.datastore.EntityNotFoundException;
17
import com.google.appengine.api.datastore.Key;
18
import com.google.appengine.api.datastore.KeyFactory;
19
import com.google.appengine.api.datastore.PreparedQuery;
20
import com.google.appengine.api.datastore.Query;
21
import com.google.appengine.api.datastore.Query.FilterOperator;
22
 
23
public class MyNotesServlet extends HttpServlet {
24
 
25
	private static final long serialVersionUID = 1L;
26
	private static final String ENTITY_KIND = "UserNote";
27
 
28
	public void doPost(HttpServletRequest req, HttpServletResponse resp)	{
29
 
30
 
31
		String user = req.getParameter("user");
32
		String entity = req.getParameter("entity");
33
		String slide = req.getParameter("slide");
34
		String noteText = req.getParameter("note");
35
		String keyName = "";
36
 
37
		DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
38
		if (user == null || entity == null || user.isEmpty() || entity.isEmpty())	{
39
			return;
40
		}
41
 
42
		keyName = user + "-" + entity + "-" + slide;
43
		Key key = KeyFactory.createKey(ENTITY_KIND, keyName);
44
		Entity note;
45
		try {
46
			note = datastore.get(key);	// Note exists
47
			note.setProperty("note", noteText);
48
			datastore.put(note);
49
		} catch (EntityNotFoundException enf)	{	// Note does not exist
50
			try {
51
				long userId = Long.parseLong(user);
52
				long entityId = Long.parseLong(entity);
53
 
54
				note = new Entity(ENTITY_KIND, keyName);
55
				note.setProperty("userId", userId);
56
				note.setProperty("entityId", entityId);
57
				note.setProperty("slide", slide);
58
				note.setProperty("note", noteText);
59
				datastore.put(note);
60
 
61
			} catch (NumberFormatException nfe) {
62
				System.out.println("Not able to convert user id or entity id from string to long.");
63
			} 
64
		} 
65
	}
66
 
67
	public void doGet(HttpServletRequest req, HttpServletResponse resp)	{
68
 
69
		resp.setContentType("application/json");
70
		try {
71
			long userId = Long.parseLong(req.getParameter("user"));
72
			long entityId = Long.parseLong(req.getParameter("entity"));
73
 
74
			Query q = new Query(ENTITY_KIND);
75
			q.addFilter("userId", FilterOperator.EQUAL , userId);
76
			q.addFilter("entityId", FilterOperator.EQUAL, entityId);
77
 
78
			DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
79
			PreparedQuery pq = datastore.prepare(q);
80
 
81
			Map<String, String> notes = new HashMap<String, String>();
82
 
83
			for(Entity result: pq.asIterable())	{
84
				notes.put((String) result.getProperty("slide"), (String) result.getProperty("note"));
85
			}
86
 
87
			resp.getWriter().print(new JSONObject(notes));
88
 
89
		} catch (NumberFormatException e)	{
90
			System.out.println("Not able to convert user id or entity id from string to long.");
91
 
92
		} catch (IOException e) {
93
			System.out.println("Unable to write on output stream");
94
		}
95
	}
96
}