Blame | Last modification | View Log | RSS feed
package in.shop2020.web;import java.io.IOException;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.json.JSONObject;import com.google.appengine.api.datastore.DatastoreServiceFactory;import com.google.appengine.api.datastore.DatastoreService;import com.google.appengine.api.datastore.Entity;import com.google.appengine.api.datastore.EntityNotFoundException;import com.google.appengine.api.datastore.Key;import com.google.appengine.api.datastore.KeyFactory;import com.google.appengine.api.datastore.PreparedQuery;import com.google.appengine.api.datastore.Query;import com.google.appengine.api.datastore.Query.FilterOperator;public class MyNotesServlet extends HttpServlet {private static final long serialVersionUID = 1L;private static final String ENTITY_KIND = "UserNote";public void doPost(HttpServletRequest req, HttpServletResponse resp) {String user = req.getParameter("user");String entity = req.getParameter("entity");String slide = req.getParameter("slide");String noteText = req.getParameter("note");String keyName = "";DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();if (user == null || entity == null || user.isEmpty() || entity.isEmpty()) {return;}keyName = user + "-" + entity + "-" + slide;Key key = KeyFactory.createKey(ENTITY_KIND, keyName);Entity note;try {note = datastore.get(key); // Note existsnote.setProperty("note", noteText);datastore.put(note);} catch (EntityNotFoundException enf) { // Note does not existtry {long userId = Long.parseLong(user);long entityId = Long.parseLong(entity);note = new Entity(ENTITY_KIND, keyName);note.setProperty("userId", userId);note.setProperty("entityId", entityId);note.setProperty("slide", slide);note.setProperty("note", noteText);datastore.put(note);} catch (NumberFormatException nfe) {System.out.println("Not able to convert user id or entity id from string to long.");}}}public void doGet(HttpServletRequest req, HttpServletResponse resp) {resp.setContentType("application/json");try {long userId = Long.parseLong(req.getParameter("user"));long entityId = Long.parseLong(req.getParameter("entity"));Query q = new Query(ENTITY_KIND);q.addFilter("userId", FilterOperator.EQUAL , userId);q.addFilter("entityId", FilterOperator.EQUAL, entityId);DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();PreparedQuery pq = datastore.prepare(q);Map<String, String> notes = new HashMap<String, String>();for(Entity result: pq.asIterable()) {notes.put((String) result.getProperty("slide"), (String) result.getProperty("note"));}resp.getWriter().print(new JSONObject(notes));} catch (NumberFormatException e) {System.out.println("Not able to convert user id or entity id from string to long.");} catch (IOException e) {System.out.println("Unable to write on output stream");}}}