1
22
23 package com.liferay.portlet.ratings.action;
24
25 import com.liferay.portal.kernel.json.JSONFactoryUtil;
26 import com.liferay.portal.kernel.json.JSONObject;
27 import com.liferay.portal.kernel.util.MathUtil;
28 import com.liferay.portal.kernel.util.ParamUtil;
29 import com.liferay.portal.struts.JSONAction;
30 import com.liferay.portlet.ratings.model.RatingsStats;
31 import com.liferay.portlet.ratings.service.RatingsEntryServiceUtil;
32 import com.liferay.portlet.ratings.service.RatingsStatsLocalServiceUtil;
33
34 import javax.servlet.http.HttpServletRequest;
35 import javax.servlet.http.HttpServletResponse;
36
37 import org.apache.struts.action.ActionForm;
38 import org.apache.struts.action.ActionMapping;
39
40
46 public class RateEntryAction extends JSONAction {
47
48 public String getJSON(
49 ActionMapping mapping, ActionForm form, HttpServletRequest request,
50 HttpServletResponse response)
51 throws Exception {
52
53 String className = getClassName(request);
54 long classPK = getClassPK(request);
55 double score = ParamUtil.getDouble(request, "score");
56
57 if (score == 0) {
58 RatingsEntryServiceUtil.deleteEntry(className, classPK);
59 }
60 else {
61 RatingsEntryServiceUtil.updateEntry(className, classPK, score);
62 }
63
64 RatingsStats stats = RatingsStatsLocalServiceUtil.getStats(
65 className, classPK);
66
67 double averageScore = MathUtil.format(stats.getAverageScore(), 1, 1);
68
69 JSONObject jsonObj = JSONFactoryUtil.createJSONObject();
70
71 jsonObj.put("totalEntries", stats.getTotalEntries());
72 jsonObj.put("totalScore", stats.getTotalScore());
73 jsonObj.put("averageScore", averageScore);
74
75 return jsonObj.toString();
76 }
77
78 protected String getClassName(HttpServletRequest request) {
79 return ParamUtil.getString(request, "className");
80 }
81
82 protected long getClassPK(HttpServletRequest request) {
83 return ParamUtil.getLong(request, "classPK");
84 }
85
86 }