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
8 changes: 7 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,20 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
<!-- <version>8.0.22</version>-->
<version>8.0.33</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
2 changes: 2 additions & 0 deletions src/main/java/mate/controller/IndexController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@

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;

@WebServlet("/index")
public class IndexController extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
Expand Down
34 changes: 34 additions & 0 deletions src/main/java/mate/controller/car/AddDriverToCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
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.model.Car;
import mate.model.Driver;
import mate.service.CarService;
import mate.service.DriverService;

@WebServlet("/cars/drivers/add")
public class AddDriverToCarController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private final CarService carService = (CarService) injector.getInstance(CarService.class);
private final DriverService driverService =
(DriverService) injector.getInstance(DriverService.class);

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

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

import java.io.IOException;
import java.util.ArrayList;
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;
import mate.service.ManufacturerService;

@WebServlet("/cars/add")
public class CreateCarController extends HttpServlet {
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
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF/views/cars/carCreation.jsp").forward(req, resp);
}

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
Car car = new Car();
car.setModel(req.getParameter("model"));
car.setManufacturer(manufacturerService.get(
Long.valueOf(req.getParameter("manufacturerId"))));
car.setDrivers(new ArrayList<>());
carService.create(car);
resp.sendRedirect(req.getContextPath() + "/cars");
}
}
23 changes: 23 additions & 0 deletions src/main/java/mate/controller/car/DeleteCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
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("/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
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
carService.delete(Long.valueOf(req.getParameter("id")));
resp.sendRedirect(req.getContextPath() + "/cars");
}
}
29 changes: 29 additions & 0 deletions src/main/java/mate/controller/car/GetAllCarsController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
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;
import mate.service.ManufacturerService;

@WebServlet("/cars")
public class GetAllCarsController extends HttpServlet {
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<Car> carList = carService.getAll();
req.setAttribute("cars", carList);
req.getRequestDispatcher("/WEB-INF/views/cars/allCars.jsp").forward(req, resp);
}
}
33 changes: 33 additions & 0 deletions src/main/java/mate/controller/driver/CreateDriverController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
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("/drivers/add")
public class CreateDriverController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private final DriverService driverService =
(DriverService) injector.getInstance(DriverService.class);

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

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
Driver driver = new Driver();
driver.setName(req.getParameter("name"));
driver.setLicenseNumber(req.getParameter("licenseNumber"));
driverService.create(driver);
resp.sendRedirect(req.getContextPath() + "/drivers");
}
}
24 changes: 24 additions & 0 deletions src/main/java/mate/controller/driver/DeleteDriverController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
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("/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
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
driverService.delete(Long.valueOf(req.getParameter("id")));
resp.sendRedirect(req.getContextPath() + "/drivers");
}
}
27 changes: 27 additions & 0 deletions src/main/java/mate/controller/driver/GetAllDriversController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
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("/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> driverList = driverService.getAll();
req.setAttribute("drivers", driverList);
req.getRequestDispatcher("/WEB-INF/views/drivers/allDrivers.jsp").forward(req, resp);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
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("/manufacturers/add")
public class CreateManufacturerController extends HttpServlet {
private static final Injector injector = Injector.getInstance("mate");
private final ManufacturerService manufacturerService =
(ManufacturerService) injector.getInstance(ManufacturerService.class);

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

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
Manufacturer manufacturer = new Manufacturer();
manufacturer.setName(req.getParameter("name"));
manufacturer.setCountry(req.getParameter("country"));
manufacturerService.create(manufacturer);
resp.sendRedirect(req.getContextPath() + "/manufacturers");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
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("/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
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
manufacturerService.delete(Long.valueOf(req.getParameter("id")));
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("/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> manufacturerList = manufacturerService.getAll();
req.setAttribute("manufacturers", manufacturerList);
req.getRequestDispatcher("/WEB-INF/views/manufacturers/allManufacturers.jsp")
.forward(req, resp);
}
}
8 changes: 4 additions & 4 deletions src/main/java/mate/dao/CarDaoImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public List<Car> getAllByDriver(Long driverId) {
+ "m.country AS manufacturer_country "
+ "FROM cars c"
+ " JOIN manufacturers m ON c.manufacturer_id = m.id"
+ " JOIN cars_drivers cd ON c.id = cd.car_id"
+ " JOIN drivers_cars cd ON c.id = cd.car_id"
+ " JOIN drivers d ON cd.driver_id = d.id"
+ " WHERE c.is_deleted = FALSE and driver_id = ?"
+ " AND d.is_deleted = FALSE";
Expand All @@ -160,7 +160,7 @@ private void insertAllDrivers(Car car) {
if (drivers.size() == 0) {
return;
}
String query = "INSERT INTO cars_drivers (car_id, driver_id) VALUES (?, ?)";
String query = "INSERT INTO drivers_cars (car_id, driver_id) VALUES (?, ?)";
try (Connection connection = ConnectionUtil.getConnection();
PreparedStatement statement =
connection.prepareStatement(query)) {
Expand All @@ -176,7 +176,7 @@ private void insertAllDrivers(Car car) {

private void deleteAllDriversExceptList(Car car) {
Long carId = car.getId();
String query = "DELETE FROM cars_drivers WHERE car_id = ?";
String query = "DELETE FROM drivers_cars WHERE car_id = ?";
try (Connection connection = ConnectionUtil.getConnection();
PreparedStatement statement =
connection.prepareStatement(query)) {
Expand All @@ -188,7 +188,7 @@ private void deleteAllDriversExceptList(Car car) {
}

private List<Driver> getAllDriversByCarId(Long carId) {
String query = "SELECT id, name, license_number FROM cars_drivers cd "
String query = "SELECT id, name, license_number FROM drivers_cars cd "
+ "JOIN drivers d on cd.driver_id = d.id "
+ "where car_id = ? AND is_deleted = FALSE";
try (Connection connection = ConnectionUtil.getConnection();
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/mate/util/ConnectionUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
import java.util.Properties;

public class ConnectionUtil {
private static final String URL = "YOUR DATABASE URL";
private static final String USERNAME = "YOUR USERNAME";
private static final String PASSWORD = "YOUR PASSWORD";
private static final String JDBC_DRIVER = "YOUR DRIVER";
private static final String URL = "jdbc:mysql://localhost:3306/taxi_service_db";
private static final String USERNAME = "root";
private static final String PASSWORD = "Password";
private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

static {
try {
Expand Down
Loading