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
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 }