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
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ jobs:

steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '11'
java-version: '17'
Comment on lines +11 to +14
Copy link

Choose a reason for hiding this comment

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

you shound't make changes here

Copy link
Author

Choose a reason for hiding this comment

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

I did not. that time i amended commit by mistake

Choose a reason for hiding this comment

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

revert back to version 17

Copy link
Author

Choose a reason for hiding this comment

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

it is on version 17

distribution: 'adopt'
cache: maven
- name: Build with Maven
Expand Down
5 changes: 5 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>

<build>
Expand Down
44 changes: 44 additions & 0 deletions src/main/java/mate/controller/car/CreateCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
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.model.Manufacturer;
import mate.service.CarService;
import mate.service.ManufacturerService;

@WebServlet(urlPatterns = "/cars/create")
public class CreateCarController extends HttpServlet {
private static final Injector injector =
Injector.getInstance("mate");
private final CarService carService =
(CarService) injector.getInstance(CarService.class);
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/cars/create.jsp").forward(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String carModel = req.getParameter("car_model");
Long manufacturerId = Long.valueOf(req.getParameter("manufacturer_id"));
Manufacturer manufacturer = manufacturerService.get(manufacturerId);
Car car = new Car();
car.setManufacturer(manufacturer);
car.setModel(carModel);
car.setDrivers(new ArrayList<>());
carService.create(car);
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
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;

@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
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Car> allCars = carService.getAll();
req.setAttribute("cars", allCars);
req.getRequestDispatcher("/WEB-INF/views/cars/all.jsp").forward(req, resp);
}
}
40 changes: 40 additions & 0 deletions src/main/java/mate/controller/driver/AddDriverToCarController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
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.Car;
import mate.model.Driver;
import mate.service.CarService;
import mate.service.DriverService;

@WebServlet(urlPatterns = "/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/drivers/add.jsp").forward(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Long driverId = Long.valueOf(req.getParameter("driver_id"));
Long carId = Long.valueOf(req.getParameter("car_id"));
Driver driver = driverService.get(driverId);
Car car = carService.get(carId);
carService.addDriverToCar(driver, car);

Choose a reason for hiding this comment

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

After processing the POST request successfully, it is common practice to redirect the client to a specific URL, rather than leaving them on the current POST URL.

Copy link

Choose a reason for hiding this comment

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

add sendRedirect here too

resp.sendRedirect(req.getContextPath() + "/drivers");
}
}
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/create")
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/create.jsp").forward(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Driver driver = new Driver();
String name = req.getParameter("driver_name");
String licenseNumber = req.getParameter("license_number");
driver.setName(name);
driver.setLicenseNumber(licenseNumber);
driverService.create(driver);
resp.sendRedirect(req.getContextPath() + "/drivers");
}

Choose a reason for hiding this comment

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

After executing the 'create' method, the user is not redirected to any page. This might cause confusion for the user as no visual feedback will be provided after submitting the form.

}
25 changes: 25 additions & 0 deletions src/main/java/mate/controller/driver/DeleteDriverController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
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
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
driverService.delete(Long.valueOf(req.getParameter("id")));

Choose a reason for hiding this comment

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

Redirect the user to another page after the operation. Currently, the user will be left on a blank page after a driver is deleted.

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
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Driver> allDrivers = driverService.getAll();
req.setAttribute("drivers", allDrivers);
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/create")
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/create.jsp").forward(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Manufacturer manufacturer = new Manufacturer();
String name = req.getParameter("manufacturer_name");
String country = req.getParameter("manufacturer_country");
manufacturer.setName(name);
manufacturer.setCountry(country);
manufacturerService.create(manufacturer);
resp.sendRedirect(req.getContextPath() + "/manufacturers");
}

Choose a reason for hiding this comment

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

You should add a redirect after creating a Manufacturer. Otherwise, the user will stay on the same page without any feedback.

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
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
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
manufacturerService.delete(Long.valueOf(req.getParameter("id")));

Choose a reason for hiding this comment

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

After deleting a manufacturer, the user should be redirected to a specific page, usually the list of all manufacturers, to confirm the deletion.

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
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List<Manufacturer> allManufacturers = manufacturerService.getAll();
req.setAttribute("manufacturers", allManufacturers);
req.getRequestDispatcher("/WEB-INF/views/manufacturers/all.jsp").forward(req, resp);
}
}
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";
private static final String USERNAME = "root";
private static final String PASSWORD = "Ltkmrf008866";
private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

static {
try {
Expand Down
Loading