protected void doPost()

in slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java [63:97]


    protected void doPost(final SlingHttpServletRequest request,
            final SlingHttpServletResponse response)
    throws ServletException, IOException {
        final String rating = request.getParameter(RatingsUtil.PROPERTY_RATING);
        final String userId = request.getRemoteUser();

        logger.debug("New rating from {} : {}", userId, rating);

        // save rating
        ResourceResolver resolver = null;
        try {
            resolver = factory.getServiceResourceResolver(null);

            final Resource reqResource = resolver.getResource(request.getResource().getPath());

            ratingsService.setRating(reqResource, userId, Double.valueOf(rating));

        } catch ( final LoginException le ) {
            throw new ServletException("Unable to login", le);
        } finally {
            if ( resolver != null ) {
                resolver.close();
            }
        }

        response.setContentType("application/json");
        response.setCharacterEncoding("utf-8");
        response.setStatus(200);

        final PrintWriter pw = response.getWriter();
        pw.print("{ ");
        pw.print(" \"rating\" : ");
        pw.print(String.valueOf(ratingsService.getRating(request.getResource())));
        pw.print("}");
    }