Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,19 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
<version>8.0.32</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>

<build>
Expand Down
46 changes: 46 additions & 0 deletions src/main/java/mate/controller/car/AddDriverToCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package mate.controller.car;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mate.lib.Injector;
import mate.model.Car;
import mate.model.Driver;
import mate.service.CarService;
import mate.service.DriverService;

@WebServlet(urlPatterns = "/cars/drivers/add")
public class AddDriverToCarController extends HttpServlet {
private static final Injector INJECTOR = Injector.getInstance("mate");

private final DriverService driverService =
(DriverService) INJECTOR.getInstance(DriverService.class);
private final CarService carService =
(CarService) INJECTOR.getInstance(CarService.class);

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Long carId = Long.valueOf(req.getParameter("car_id"));
List<Driver> drivers = driverService.getAll();
drivers.removeAll(carService.get(carId).getDrivers()); // to show only available drivers
req.setAttribute("car_id", carId);
req.setAttribute("drivers", drivers);
req.getRequestDispatcher("/WEB-INF/views/cars/addDriver.jsp").forward(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Long carId = Long.valueOf(req.getParameter("car_id"));
Long driverId = Long.valueOf(req.getParameter("driver_id"));
Car car = carService.get(carId);
Driver driver = driverService.get(driverId);
carService.addDriverToCar(driver, car);
resp.sendRedirect(req.getContextPath() + "/cars");
}
}
47 changes: 47 additions & 0 deletions src/main/java/mate/controller/car/CreateCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package mate.controller.car;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mate.lib.Injector;
import mate.model.Car;
import mate.model.Manufacturer;
import mate.service.CarService;
import mate.service.ManufacturerService;

@WebServlet(urlPatterns = "/cars/new")
public class CreateCarController extends HttpServlet {
Comment on lines +17 to +18
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
@WebServlet(urlPatterns = "/cars/new")
public class CreateCarController extends HttpServlet {
@WebServlet(urlPatterns = "/cars/create")
public class CreateCarController extends HttpServlet {

/cars/create is more consistent with CreateCarController servlet name

private static final Injector INJECTOR = Injector.getInstance("mate");

private final ManufacturerService manufacturerService =
(ManufacturerService) INJECTOR.getInstance(ManufacturerService.class);
private final CarService carService =
(CarService) INJECTOR.getInstance(CarService.class);

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Manufacturer> manufacturers = manufacturerService.getAll();
req.setAttribute("manufacturers", manufacturers);
req.getRequestDispatcher("/WEB-INF/views/cars/new.jsp").forward(req, resp);
}

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String carModel = req.getParameter("model");
Long carManufacturerId = Long.valueOf(req.getParameter("manufacturer_id"));
Manufacturer carManufacturer = manufacturerService.get(carManufacturerId);
Car newCar = new Car();
newCar.setModel(carModel);
newCar.setManufacturer(carManufacturer);
newCar.setDrivers(new ArrayList<>());
carService.create(newCar);
resp.sendRedirect(req.getContextPath() + "/cars");
}
}
25 changes: 25 additions & 0 deletions src/main/java/mate/controller/car/DeleteCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package mate.controller.car;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mate.lib.Injector;
import mate.service.CarService;

@WebServlet(urlPatterns = "/cars/delete")
public class DeleteCarController extends HttpServlet {
private static final Injector INJECTOR = Injector.getInstance("mate");

private final CarService carService = (CarService) INJECTOR.getInstance(CarService.class);

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Long carId = Long.valueOf(req.getParameter("id"));
carService.delete(carId);
resp.sendRedirect(req.getContextPath() + "/cars");
}
}
27 changes: 27 additions & 0 deletions src/main/java/mate/controller/car/GetAllCarsController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package mate.controller.car;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mate.lib.Injector;
import mate.model.Car;
import mate.service.CarService;

@WebServlet(urlPatterns = "/cars")
public class GetAllCarsController extends HttpServlet {
private static final Injector INJECTOR = Injector.getInstance("mate");

private final CarService carService = (CarService) INJECTOR.getInstance(CarService.class);

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Car> drivers = carService.getAll();
req.setAttribute("cars", drivers);
req.getRequestDispatcher("/WEB-INF/views/cars/all.jsp").forward(req, resp);
}
}
37 changes: 37 additions & 0 deletions src/main/java/mate/controller/driver/CreateDriverController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package mate.controller.driver;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mate.lib.Injector;
import mate.model.Driver;
import mate.service.DriverService;

@WebServlet(urlPatterns = "/drivers/new")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same

public class CreateDriverController extends HttpServlet {
private static final Injector INJECTOR = Injector.getInstance("mate");

private final DriverService driverService =
(DriverService) INJECTOR.getInstance(DriverService.class);

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF/views/drivers/new.jsp").forward(req, resp);
}

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String driverName = req.getParameter("name");
String driverLicenseNumber = req.getParameter("license_number");
Driver newDriver = new Driver();
newDriver.setName(driverName);
newDriver.setLicenseNumber(driverLicenseNumber);
driverService.create(newDriver);
resp.sendRedirect(req.getContextPath() + "/drivers");
}
}
26 changes: 26 additions & 0 deletions src/main/java/mate/controller/driver/DeleteDriverController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package mate.controller.driver;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mate.lib.Injector;
import mate.service.DriverService;

@WebServlet(urlPatterns = "/drivers/delete")
public class DeleteDriverController extends HttpServlet {
private static final Injector INJECTOR = Injector.getInstance("mate");

private final DriverService driverService =
(DriverService) INJECTOR.getInstance(DriverService.class);

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Long driverId = Long.valueOf(req.getParameter("id"));
driverService.delete(driverId);
resp.sendRedirect(req.getContextPath() + "/drivers");
}
}
28 changes: 28 additions & 0 deletions src/main/java/mate/controller/driver/GetAllDriversController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package mate.controller.driver;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mate.lib.Injector;
import mate.model.Driver;
import mate.service.DriverService;

@WebServlet(urlPatterns = "/drivers")
public class GetAllDriversController extends HttpServlet {
private static final Injector INJECTOR = Injector.getInstance("mate");

private final DriverService driverService =
(DriverService) INJECTOR.getInstance(DriverService.class);

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Driver> drivers = driverService.getAll();
req.setAttribute("drivers", drivers);
req.getRequestDispatcher("/WEB-INF/views/drivers/all.jsp").forward(req, resp);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package mate.controller.manufacturer;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mate.lib.Injector;
import mate.model.Manufacturer;
import mate.service.ManufacturerService;

@WebServlet(urlPatterns = "/manufacturers/new")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same

public class CreateManufacturerController extends HttpServlet {
private static final Injector INJECTOR = Injector.getInstance("mate");

private final ManufacturerService manufacturerService =
(ManufacturerService) INJECTOR.getInstance(ManufacturerService.class);

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF/views/manufacturers/new.jsp").forward(req, resp);
}

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String manufacturerName = req.getParameter("name");
String manufacturerCountry = req.getParameter("country");
Manufacturer newManufacturer = new Manufacturer();
newManufacturer.setName(manufacturerName);
newManufacturer.setCountry(manufacturerCountry);
manufacturerService.create(newManufacturer);
resp.sendRedirect(req.getContextPath() + "/manufacturers");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package mate.controller.manufacturer;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mate.lib.Injector;
import mate.service.ManufacturerService;

@WebServlet(urlPatterns = "/manufacturers/delete")
public class DeleteManufacturerController extends HttpServlet {
private static final Injector INJECTOR = Injector.getInstance("mate");

private final ManufacturerService manufacturerService =
(ManufacturerService) INJECTOR.getInstance(ManufacturerService.class);

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Long manufacturerId = Long.valueOf(req.getParameter("id"));
manufacturerService.delete(manufacturerId);
resp.sendRedirect(req.getContextPath() + "/manufacturers");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package mate.controller.manufacturer;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mate.lib.Injector;
import mate.model.Manufacturer;
import mate.service.ManufacturerService;

@WebServlet(urlPatterns = "/manufacturers")
public class GetAllManufacturersController extends HttpServlet {
private static final Injector INJECTOR = Injector.getInstance("mate");

private final ManufacturerService manufacturerService =
(ManufacturerService) INJECTOR.getInstance(ManufacturerService.class);

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Manufacturer> manufacturers = manufacturerService.getAll();
req.setAttribute("manufacturers", manufacturers);
req.getRequestDispatcher("/WEB-INF/views/manufacturers/all.jsp").forward(req, resp);
}
}
Loading