-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBookingServlet.java
More file actions
100 lines (91 loc) · 4.86 KB
/
Copy pathBookingServlet.java
File metadata and controls
100 lines (91 loc) · 4.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import model.Booking;
import Service.BookingService;
import Service.BookingInfoService;
import java.io.IOException;
@WebServlet("/bookEvent")
public class BookingServlet extends HttpServlet {
private BookingService bookingService;
private BookingInfoService bookingInfoService;
@Override
public void init() throws ServletException {
bookingService = new BookingService(getServletContext());
try {
bookingInfoService = new BookingInfoService(bookingService);
} catch (IOException e) {
throw new ServletException("Failed to initialize BookingInfoService", e);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = (String) request.getSession().getAttribute("loggedInUser");
if (username == null) {
request.setAttribute("errorMessage", "Please sign in to book an event.");
request.getRequestDispatcher("/event/SignIN/signin.jsp").forward(request, response);
return;
}
try {
String name = request.getParameter("name");
String phone = request.getParameter("phone");
String email = request.getParameter("email");
String address = request.getParameter("address");
String city = request.getParameter("city");
String state = request.getParameter("state");
String postal = request.getParameter("postal");
String sessionType = request.getParameter("sessionType");
String sessionDate = request.getParameter("sessionDate");
String startTime = request.getParameter("startTime");
String endTime = request.getParameter("endTime");
int numPeople = Integer.parseInt(request.getParameter("numPeople"));
String ages = request.getParameter("ages");
String notes = request.getParameter("notes");
String extras = request.getParameter("extras");
if (name == null || name.trim().isEmpty() ||
email == null || email.trim().isEmpty() ||
sessionType == null || sessionType.trim().isEmpty() ||
sessionDate == null || sessionDate.trim().isEmpty() ||
startTime == null || startTime.trim().isEmpty() ||
endTime == null || endTime.trim().isEmpty() ||
numPeople < 1) {
request.setAttribute("errorMessage", "Required fields are missing or invalid.");
request.getRequestDispatcher("/event/BookingPage/bp.jsp").forward(request, response);
return;
}
Booking booking = new Booking(
0, name, phone, email, address, city, state, postal,
sessionType, sessionDate, startTime, endTime,
numPeople, ages, notes, extras, username
);
boolean saved = bookingService.saveBooking(booking);
if (saved) {
boolean enqueued = bookingInfoService.enqueueBooking(booking);
if (enqueued) {
System.out.println("Booking ID " + booking.getId() + " enqueued successfully");
} else {
System.err.println("Failed to enqueue booking ID " + booking.getId());
}
request.setAttribute("successMessage", "Booking submitted successfully!");
request.setAttribute("bookingId", String.valueOf(booking.getId()));
request.setAttribute("sessionType", booking.getSessionType());
request.setAttribute("extras", booking.getExtras());
request.setAttribute("numPeople", booking.getNumPeople());
request.setAttribute("sessionDate", booking.getSessionDate());
request.setAttribute("startTime", booking.getStartTime());
request.setAttribute("endTime", booking.getEndTime());
request.getRequestDispatcher("/event/Payment/payment.jsp").forward(request, response);
} else {
request.setAttribute("errorMessage", "Failed to save booking.");
request.getRequestDispatcher("/event/BookingPage/bp.jsp").forward(request, response);
}
} catch (Exception e) {
request.setAttribute("errorMessage", "Error processing booking: " + e.getMessage());
request.getRequestDispatcher("/event/BookingPage/bp.jsp").forward(request, response);
}
}
}