/src/main/java/tw/com/useful/web/AddSubscribeServlet.java

https://github.com/aio1108/OReader_Service_Server · Java · 77 lines · 66 code · 10 blank · 1 comment · 4 complexity · 50ebcabc315f938b96101921b9f26971 MD5 · raw file

  1. package tw.com.useful.web;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.util.List;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import org.apache.log4j.Logger;
  10. import org.bson.types.ObjectId;
  11. import tw.com.useful.data.model.Subscribe;
  12. import tw.com.useful.data.model.User;
  13. import tw.com.useful.service.CategoryService;
  14. import tw.com.useful.service.MetaDataService;
  15. import tw.com.useful.service.SubscribeService;
  16. import tw.com.useful.service.UserService;
  17. import tw.com.useful.service.ViewTypeService;
  18. import tw.com.useful.util.ReadableJsonConverter;
  19. import com.google.gson.Gson;
  20. import com.google.gson.JsonElement;
  21. import com.google.gson.JsonObject;
  22. import com.mongodb.BasicDBObject;
  23. import com.mongodb.DBRef;
  24. import com.mongodb.WriteResult;
  25. public class AddSubscribeServlet extends HttpServlet {
  26. private Logger logger = Logger.getLogger(AddSubscribeServlet.class);
  27. private static final long serialVersionUID = 1L;
  28. public AddSubscribeServlet() {
  29. super();
  30. }
  31. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  32. doPost(request, response);
  33. }
  34. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  35. SubscribeService subscribeService = new SubscribeService();
  36. MetaDataService metaDataService = new MetaDataService();
  37. ViewTypeService viewTypeService = new ViewTypeService();
  38. UserService userService = new UserService();
  39. String id = request.getParameter("id");
  40. String metaId = request.getParameter("metaId");
  41. String preferType = request.getParameter("preferType");
  42. Subscribe subscribe = new Subscribe();
  43. subscribe.setMetaData(metaDataService.getDBRef(new ObjectId(metaId)));
  44. subscribe.setPreferViewType(viewTypeService.getDBRef(preferType));
  45. WriteResult insertResult = subscribeService.insert(subscribe);
  46. User user = userService.findById(id);
  47. List<DBRef> subscribes = user.getSubscribes();
  48. subscribes.add(subscribeService.getDBRef(subscribe.getId()));
  49. user.setSubscribes(subscribes);
  50. WriteResult updateResult = userService.update(user);
  51. String jsonResult = (insertResult.getField("err") == null && updateResult.getField("err") == null)?"{\"success\":true}":"{\"success\":false}";
  52. String callback = request.getParameter("callback")==null? "" : request.getParameter("callback").toString();
  53. logger.debug("callback =============="+ callback);
  54. if(callback.length() > 0){
  55. //for JSONP call
  56. response.setContentType("application/javascript;charset=UTF-8");
  57. jsonResult = callback + "(" + jsonResult + ")";
  58. }else{
  59. response.setContentType("application/json;charset=UTF-8");
  60. }
  61. response.addHeader("Access-Control-Allow-Origin", "*");
  62. PrintWriter pw = response.getWriter();
  63. pw.write(jsonResult);
  64. pw.flush();
  65. pw.close();
  66. }
  67. }