View Javadoc
1   package usecase.section;
2   
3   import common.http.error.ForwardOnError;
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.MultipartConfig;
10  import javax.servlet.annotation.WebServlet;
11  import javax.servlet.http.HttpServletRequest;
12  import javax.servlet.http.HttpServletResponse;
13  import javax.servlet.http.Part;
14  import java.io.BufferedInputStream;
15  import java.io.IOException;
16  
17  import static usecase.auth.AuthorizationConstraints.Types.ADMINS_ONLY;
18  
19  /**
20   * Servlet che permette ad un amministratore di creare una nuova sezione.
21   */
22  @WebServlet("/admin/newsection")
23  @MultipartConfig
24  @AuthorizationConstraints(ADMINS_ONLY)
25  class NewSectionServlet extends InterceptableServlet {
26      @Inject private SectionService service;
27  
28      private static final String NEW_SECTION_PAGE = "/WEB-INF/views/crm/create-section.jsp";
29  
30      @Override
31      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
32          request.getRequestDispatcher("/WEB-INF/views/crm/create-section.jsp").forward(request, response);
33      }
34  
35      @Override
36      @ForwardOnError(NEW_SECTION_PAGE)
37      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
38          String name = request.getParameter("name");
39          String description = request.getParameter("description");
40          Part picture = request.getPart("picture");
41          Part banner = request.getPart("banner");
42  
43          BufferedInputStream streamPicture = picture.getSize() > 0 ? new BufferedInputStream(picture.getInputStream()) : null;
44          BufferedInputStream streamBanner = banner.getSize() > 0 ? new BufferedInputStream(banner.getInputStream()) : null;
45  
46          service.newSection(name, description ,streamPicture,streamBanner);
47          response.sendRedirect(getServletContext().getContextPath()+"/admin/showsections");
48      }
49  }