1 package usecase.comment;
2
3 import common.http.ParameterConverter;
4 import common.http.interceptor.InterceptableServlet;
5 import usecase.auth.AuthorizationConstraints;
6
7 import javax.inject.Inject;
8 import javax.servlet.ServletException;
9 import javax.servlet.annotation.WebServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 import java.io.IOException;
13
14 import static usecase.auth.AuthorizationConstraints.Types.REQUIRE_AUTHENTICATION;
15
16
17
18
19 @WebServlet("/newcomment")
20 @AuthorizationConstraints(REQUIRE_AUTHENTICATION)
21 class NewCommentServlet extends InterceptableServlet {
22 @Inject private CommentService service;
23
24 @Override
25 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
26 doPost(request,response);
27 }
28
29 @Override
30 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
31 ParameterConverter converter = new ParameterConverter(request);
32 int postId = converter.getIntParameter("id").orElse(0);
33 int parentId = converter.getIntParameter("parent").orElse(0);
34 String text = request.getParameter("text");
35
36 if(postId > 0){
37 service.newComment(text,postId);
38 }else{
39 service.newCommentReply(text,parentId);
40 }
41
42 int redirectPost = postId <= 0 ? service.getComment(parentId).getPostId() : postId;
43 response.sendRedirect(request.getContextPath() + "/post/" + redirectPost +"#comment-container");
44 }
45 }