From 509b1b35330ee10cac06631cc2b1800b0ca1641e Mon Sep 17 00:00:00 2001 From: Andrey Belousov <groundhog448@gmail.com> Date: Mon, 9 Dec 2019 22:55:17 +0000 Subject: [PATCH] Added servlets for Users and Tickets --- .../s3ai/controllers/tickets/TicketsEdit.java | 66 +++++++++++++++++++ .../s3ai/controllers/tickets/TicketsFill.java | 47 +++++++++++++ .../s3ai/controllers/tickets/TicketsList.java | 24 +++++++ .../controllers/tickets/TicketsUpdate.java | 4 -- .../com/s3ai/controllers/users/UsersEdit.java | 49 ++++++++++++++ .../com/s3ai/controllers/users/UsersFill.java | 39 +++++++++++ .../com/s3ai/controllers/users/UsersList.java | 27 +++++++- .../s3ai/controllers/users/UsersUpdate.java | 4 -- 8 files changed, 251 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/s3ai/controllers/tickets/TicketsEdit.java create mode 100644 src/main/java/com/s3ai/controllers/tickets/TicketsFill.java delete mode 100644 src/main/java/com/s3ai/controllers/tickets/TicketsUpdate.java create mode 100644 src/main/java/com/s3ai/controllers/users/UsersEdit.java create mode 100644 src/main/java/com/s3ai/controllers/users/UsersFill.java delete mode 100644 src/main/java/com/s3ai/controllers/users/UsersUpdate.java diff --git a/src/main/java/com/s3ai/controllers/tickets/TicketsEdit.java b/src/main/java/com/s3ai/controllers/tickets/TicketsEdit.java new file mode 100644 index 0000000..e5e3254 --- /dev/null +++ b/src/main/java/com/s3ai/controllers/tickets/TicketsEdit.java @@ -0,0 +1,66 @@ +package com.s3ai.controllers.tickets; + +import com.s3ai.entities.Ticket; +import com.s3ai.services.CinemaService; +import com.s3ai.services.TicketService; +import com.s3ai.services.UserService; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; +import java.util.UUID; + +public class TicketsEdit extends HttpServlet { + TicketService ticketService = TicketService.getInstance(); + CinemaService cinemaService = CinemaService.getInstance(); + UserService userService = UserService.getInstance(); + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + Ticket ticket = null; + String id = req.getParameter("id"); + String userId = req.getParameter("userId") == null ? "" : req.getParameter("userId"); + String cinemaId = req.getParameter("cinemaId") == null ? "" : req.getParameter("cinemaId"); + String movie = req.getParameter("movie") == null ? "" : req.getParameter("movie"); + + var user = userService.getUserById(UUID.fromString(userId)); + var cinema = cinemaService.getCinemaById(UUID.fromString(cinemaId)); + + if (null == user){ + resp.sendError(500, "Invalid userId"); + } + + if (null == cinema){ + resp.sendError(500, "Invalid cinemaId"); + } + + if (null == id) { + ticket = new Ticket(); + ticket.setId(UUID.randomUUID()); + ticketService.fillTicketFields(ticket, user, cinema, movie); + ticketService.saveTicket(ticket); + } else { + ticket = ticketService.getTicketById(UUID.fromString(id)); + ticketService.fillTicketFields(ticket, user, cinema, movie); + ticketService.saveTicket(ticket); + } + resp.sendRedirect("/tickets"); + } + + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + HttpSession session = req.getSession(); + String idToEdit = req.getParameter("id"); + Ticket ticket = null; + RequestDispatcher dispatcher = req.getRequestDispatcher("/pages/tickets/edit.jsp"); + if (idToEdit != null) { + ticket = ticketService.getTicketById(UUID.fromString(idToEdit)); + } else { + ticket = new Ticket(); + } + session.setAttribute("ticket", ticket); + dispatcher.forward(req, resp); + } +} diff --git a/src/main/java/com/s3ai/controllers/tickets/TicketsFill.java b/src/main/java/com/s3ai/controllers/tickets/TicketsFill.java new file mode 100644 index 0000000..af1768b --- /dev/null +++ b/src/main/java/com/s3ai/controllers/tickets/TicketsFill.java @@ -0,0 +1,47 @@ +package com.s3ai.controllers.tickets; + +import com.s3ai.entities.Ticket; +import com.s3ai.services.CinemaService; +import com.s3ai.services.TicketService; +import com.s3ai.services.UserService; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Random; + +public class TicketsFill extends HttpServlet { + TicketService ticketService = TicketService.getInstance(); + UserService userService = UserService.getInstance(); + CinemaService cinemaService = CinemaService.getInstance(); + + private String[] wordsFirst = new String[] {"Pirates", "Ladies", "Goblins", "Gangsters", "Programmers", "Hackers", "Wrestlers", "Animals", "Guardians"}; + private String[] wordsSecond = new String[] {"of the", "in", "from"}; + private String[] wordsThird = new String[] {"Galaxy", "America", "Russia", "Japan", "Ocean", "Deep", "Caribbean", "Matrix", "Internet", "Woods", "Caves"}; + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + var users = userService.getAllUsers(); + var cinemas = cinemaService.getAllCinemas(); + + var writer = response.getWriter(); + writer.println("FILLED Instances:"); + var random = new Random(); + for (int i = 0; i < 300; i++) { + var ticket = new Ticket(); + ticketService.fillTicketFields(ticket, users.get(random.nextInt(users.size())), cinemas.get(random.nextInt(cinemas.size())), randomMovieName()); + ticketService.saveTicket(ticket); + writer.println(ticket); + } + } + + private String randomMovieName() { + var random = new Random(); + return String.format("%s %s %s", wordsFirst[random.nextInt(wordsFirst.length)], wordsSecond[random.nextInt(wordsSecond.length)], wordsThird[random.nextInt(wordsThird.length)]); + } +} diff --git a/src/main/java/com/s3ai/controllers/tickets/TicketsList.java b/src/main/java/com/s3ai/controllers/tickets/TicketsList.java index 9e8da3a..7fd9249 100644 --- a/src/main/java/com/s3ai/controllers/tickets/TicketsList.java +++ b/src/main/java/com/s3ai/controllers/tickets/TicketsList.java @@ -1,4 +1,28 @@ package com.s3ai.controllers.tickets; +import com.s3ai.entities.Ticket; +import com.s3ai.services.TicketService; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.UUID; + public class TicketsList { + private TicketService ticketService = TicketService.getInstance(); + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String id = request.getReader().readLine(); + Ticket ticket = ticketService.getTicketById(UUID.fromString(id)); + ticketService.deleteTicket(ticket); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + System.out.println("doGet"); + RequestDispatcher dispatcher = request.getRequestDispatcher("pages/tickets/list.jsp"); + request.getSession().setAttribute("tickets", ticketService.getAllTickets()); + dispatcher.forward(request, response); + } } diff --git a/src/main/java/com/s3ai/controllers/tickets/TicketsUpdate.java b/src/main/java/com/s3ai/controllers/tickets/TicketsUpdate.java deleted file mode 100644 index 35d08a4..0000000 --- a/src/main/java/com/s3ai/controllers/tickets/TicketsUpdate.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.s3ai.controllers.tickets; - -public class TicketsUpdate { -} diff --git a/src/main/java/com/s3ai/controllers/users/UsersEdit.java b/src/main/java/com/s3ai/controllers/users/UsersEdit.java new file mode 100644 index 0000000..3b6ebce --- /dev/null +++ b/src/main/java/com/s3ai/controllers/users/UsersEdit.java @@ -0,0 +1,49 @@ +package com.s3ai.controllers.users; + +import com.s3ai.entities.User; +import com.s3ai.services.UserService; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; +import java.util.UUID; + +public class UsersEdit extends HttpServlet { + UserService userService = UserService.getInstance(); + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + String id = req.getParameter("id"); + User user = null; + String name = req.getParameter("name") == null ? "" : req.getParameter("name"); + Integer age = Integer.parseInt(req.getParameter("age") == null ? "" : req.getParameter("age")); + if (null == id) { + user = new User(); + user.setId(UUID.randomUUID()); + userService.fillUserFields(user, name, age); + userService.saveUser(user); + } else { + user = userService.getUserById(UUID.fromString(id)); + userService.fillUserFields(user, name, age); + userService.saveUser(user); + } + resp.sendRedirect("/users"); + } + + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + HttpSession session = req.getSession(); + String idToEdit = req.getParameter("id"); + User user = null; + RequestDispatcher dispatcher = req.getRequestDispatcher("/pages/users/edit.jsp"); + if (idToEdit != null) { + user = userService.getUserById(UUID.fromString(idToEdit)); + } else { + user = new User(); + } + session.setAttribute("user", user); + dispatcher.forward(req, resp); + } +} diff --git a/src/main/java/com/s3ai/controllers/users/UsersFill.java b/src/main/java/com/s3ai/controllers/users/UsersFill.java new file mode 100644 index 0000000..9c32ed5 --- /dev/null +++ b/src/main/java/com/s3ai/controllers/users/UsersFill.java @@ -0,0 +1,39 @@ +package com.s3ai.controllers.users; + +import com.s3ai.entities.User; +import com.s3ai.services.UserService; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Random; + +public class UsersFill extends HttpServlet { + UserService userService = UserService.getInstance(); + + private String[] names = new String[] {"Jane", "Mary", "Paul", "Jason", "Keanu", "Andrew", "Joseph", "Jotaro", "Ivan", "Jolyne", "Walther"}; + private String[] surnames = new String[] {"Doe", "Reeves", "Statham", "Bourne", "Joestar", "Kujoh", "White", "Van Hallen", "Black", "Smith"}; + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + var writer = response.getWriter(); + writer.println("FILLED Instances:"); + var random = new Random(); + for (int i = 0; i < 300; i++) { + var user = new User(); + userService.fillUserFields(user, randomName(), random.nextInt(60) + 10); + userService.saveUser(user); + writer.println(user); + } + } + + private String randomName() { + var random = new Random(); + return String.format("%s %s", names[random.nextInt(names.length)], surnames[random.nextInt(surnames.length)]); + } +} diff --git a/src/main/java/com/s3ai/controllers/users/UsersList.java b/src/main/java/com/s3ai/controllers/users/UsersList.java index 22330ef..7a8094d 100644 --- a/src/main/java/com/s3ai/controllers/users/UsersList.java +++ b/src/main/java/com/s3ai/controllers/users/UsersList.java @@ -1,4 +1,29 @@ package com.s3ai.controllers.users; -public class UsersList { +import com.s3ai.entities.User; +import com.s3ai.services.UserService; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.UUID; + +public class UsersList extends HttpServlet { + private UserService userService = UserService.getInstance(); + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String id = request.getReader().readLine(); + User user = userService.getUserById(UUID.fromString(id)); + userService.deleteUser(user); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + System.out.println("doGet"); + RequestDispatcher dispatcher = request.getRequestDispatcher("pages/users/list.jsp"); + request.getSession().setAttribute("users", userService.getAllUsers()); + dispatcher.forward(request, response); + } } diff --git a/src/main/java/com/s3ai/controllers/users/UsersUpdate.java b/src/main/java/com/s3ai/controllers/users/UsersUpdate.java deleted file mode 100644 index 281cbbf..0000000 --- a/src/main/java/com/s3ai/controllers/users/UsersUpdate.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.s3ai.controllers.users; - -public class UsersUpdate { -} -- GitLab