Skip to content

Commit 02717b1

Browse files
nacenikvaniii1
authored andcommitted
implemented controllers
1 parent 331900e commit 02717b1

20 files changed

Lines changed: 478 additions & 6 deletions

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ jobs:
88

99
steps:
1010
- uses: actions/checkout@v2
11-
- name: Set up JDK 11
11+
- name: Set up JDK 17
1212
uses: actions/setup-java@v2
1313
with:
14-
java-version: '11'
14+
java-version: '17'
1515
distribution: 'adopt'
1616
cache: maven
1717
- name: Build with Maven

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@
3131
<version>4.0.1</version>
3232
<scope>provided</scope>
3333
</dependency>
34+
<dependency>
35+
<groupId>javax.servlet</groupId>
36+
<artifactId>jstl</artifactId>
37+
<version>1.2</version>
38+
</dependency>
3439
</dependencies>
3540

3641
<build>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package mate.controller.car;
2+
3+
import java.io.IOException;
4+
import java.util.ArrayList;
5+
import javax.servlet.ServletException;
6+
import javax.servlet.annotation.WebServlet;
7+
import javax.servlet.http.HttpServlet;
8+
import javax.servlet.http.HttpServletRequest;
9+
import javax.servlet.http.HttpServletResponse;
10+
import mate.lib.Injector;
11+
import mate.model.Car;
12+
import mate.model.Manufacturer;
13+
import mate.service.CarService;
14+
import mate.service.ManufacturerService;
15+
16+
@WebServlet(urlPatterns = "/cars/create")
17+
public class CreateCarController extends HttpServlet {
18+
private static final Injector injector =
19+
Injector.getInstance("mate");
20+
private final CarService carService =
21+
(CarService) injector.getInstance(CarService.class);
22+
private final ManufacturerService manufacturerService =
23+
(ManufacturerService) injector.getInstance(ManufacturerService.class);
24+
25+
@Override
26+
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
27+
throws ServletException, IOException {
28+
req.getRequestDispatcher("/WEB-INF/views/cars/create.jsp").forward(req, resp);
29+
}
30+
31+
@Override
32+
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
33+
throws ServletException, IOException {
34+
String carModel = req.getParameter("car_model");
35+
Long manufacturerId = Long.valueOf(req.getParameter("manufacturer_id"));
36+
Manufacturer manufacturer = manufacturerService.get(manufacturerId);
37+
Car car = new Car();
38+
car.setManufacturer(manufacturer);
39+
car.setModel(carModel);
40+
car.setDrivers(new ArrayList<>());
41+
carService.create(car);
42+
resp.sendRedirect("/cars");
43+
}
44+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package mate.controller.car;
2+
3+
import java.io.IOException;
4+
import javax.servlet.ServletException;
5+
import javax.servlet.annotation.WebServlet;
6+
import javax.servlet.http.HttpServlet;
7+
import javax.servlet.http.HttpServletRequest;
8+
import javax.servlet.http.HttpServletResponse;
9+
import mate.lib.Injector;
10+
import mate.service.CarService;
11+
12+
@WebServlet(urlPatterns = "/cars/delete")
13+
public class DeleteCarController extends HttpServlet {
14+
private static final Injector injector =
15+
Injector.getInstance("mate");
16+
private final CarService carService =
17+
(CarService) injector.getInstance(CarService.class);
18+
19+
@Override
20+
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
21+
throws ServletException, IOException {
22+
carService.delete(Long.valueOf(req.getParameter("id")));
23+
resp.sendRedirect("/cars");
24+
}
25+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package mate.controller.car;
2+
3+
import java.io.IOException;
4+
import java.util.List;
5+
import javax.servlet.ServletException;
6+
import javax.servlet.annotation.WebServlet;
7+
import javax.servlet.http.HttpServlet;
8+
import javax.servlet.http.HttpServletRequest;
9+
import javax.servlet.http.HttpServletResponse;
10+
import mate.lib.Injector;
11+
import mate.model.Car;
12+
import mate.service.CarService;
13+
14+
@WebServlet(urlPatterns = "/cars")
15+
public class GetAllCarsController extends HttpServlet {
16+
private static final Injector injector =
17+
Injector.getInstance("mate");
18+
19+
private final CarService carService =
20+
(CarService) injector.getInstance(CarService.class);
21+
22+
@Override
23+
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
24+
throws ServletException, IOException {
25+
List<Car> allCars = carService.getAll();
26+
req.setAttribute("cars", allCars);
27+
req.getRequestDispatcher("/WEB-INF/views/cars/all.jsp").forward(req, resp);
28+
}
29+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package mate.controller.driver;
2+
3+
import java.io.IOException;
4+
import javax.servlet.ServletException;
5+
import javax.servlet.annotation.WebServlet;
6+
import javax.servlet.http.HttpServlet;
7+
import javax.servlet.http.HttpServletRequest;
8+
import javax.servlet.http.HttpServletResponse;
9+
import mate.lib.Injector;
10+
import mate.model.Car;
11+
import mate.model.Driver;
12+
import mate.service.CarService;
13+
import mate.service.DriverService;
14+
15+
@WebServlet(urlPatterns = "/drivers/add")
16+
public class AddDriverToCarController extends HttpServlet {
17+
private static final Injector injector =
18+
Injector.getInstance("mate");
19+
private final CarService carService =
20+
(CarService) injector.getInstance(CarService.class);
21+
private final DriverService driverService =
22+
(DriverService) injector.getInstance(DriverService.class);
23+
24+
@Override
25+
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
26+
throws ServletException, IOException {
27+
req.getRequestDispatcher("/WEB-INF/views/drivers/add.jsp").forward(req, resp);
28+
resp.sendRedirect("/drivers");
29+
}
30+
31+
@Override
32+
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
33+
throws ServletException, IOException {
34+
Long driverId = Long.valueOf(req.getParameter("driver_id"));
35+
Long carId = Long.valueOf(req.getParameter("car_id"));
36+
Driver driver = driverService.get(driverId);
37+
Car car = carService.get(carId);
38+
carService.addDriverToCar(driver, car);
39+
}
40+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package mate.controller.driver;
2+
3+
import java.io.IOException;
4+
import javax.servlet.ServletException;
5+
import javax.servlet.annotation.WebServlet;
6+
import javax.servlet.http.HttpServlet;
7+
import javax.servlet.http.HttpServletRequest;
8+
import javax.servlet.http.HttpServletResponse;
9+
import mate.lib.Injector;
10+
import mate.model.Driver;
11+
import mate.service.DriverService;
12+
13+
@WebServlet(urlPatterns = "/drivers/create")
14+
public class CreateDriverController extends HttpServlet {
15+
private static final Injector injector =
16+
Injector.getInstance("mate");
17+
private final DriverService driverService =
18+
(DriverService) injector.getInstance(DriverService.class);
19+
20+
@Override
21+
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
22+
throws ServletException, IOException {
23+
req.getRequestDispatcher("/WEB-INF/views/drivers/create.jsp").forward(req, resp);
24+
}
25+
26+
@Override
27+
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
28+
throws ServletException, IOException {
29+
Driver driver = new Driver();
30+
String name = req.getParameter("driver_name");
31+
String licenseNumber = req.getParameter("license_number");
32+
driver.setName(name);
33+
driver.setLicenseNumber(licenseNumber);
34+
driverService.create(driver);
35+
resp.sendRedirect("/drivers");
36+
}
37+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package mate.controller.driver;
2+
3+
import java.io.IOException;
4+
import javax.servlet.ServletException;
5+
import javax.servlet.annotation.WebServlet;
6+
import javax.servlet.http.HttpServlet;
7+
import javax.servlet.http.HttpServletRequest;
8+
import javax.servlet.http.HttpServletResponse;
9+
import mate.lib.Injector;
10+
import mate.service.DriverService;
11+
12+
@WebServlet(urlPatterns = "/drivers/delete")
13+
public class DeleteDriverController extends HttpServlet {
14+
private static final Injector injector =
15+
Injector.getInstance("mate");
16+
private final DriverService driverService =
17+
(DriverService) injector.getInstance(DriverService.class);
18+
19+
@Override
20+
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
21+
throws ServletException, IOException {
22+
driverService.delete(Long.valueOf(req.getParameter("id")));
23+
resp.sendRedirect("/drivers");
24+
}
25+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package mate.controller.driver;
2+
3+
import java.io.IOException;
4+
import java.util.List;
5+
import javax.servlet.ServletException;
6+
import javax.servlet.annotation.WebServlet;
7+
import javax.servlet.http.HttpServlet;
8+
import javax.servlet.http.HttpServletRequest;
9+
import javax.servlet.http.HttpServletResponse;
10+
import mate.lib.Injector;
11+
import mate.model.Driver;
12+
import mate.service.DriverService;
13+
14+
@WebServlet(urlPatterns = "/drivers")
15+
public class GetAllDriversController extends HttpServlet {
16+
private static final Injector injector =
17+
Injector.getInstance("mate");
18+
private final DriverService driverService =
19+
(DriverService) injector.getInstance(DriverService.class);
20+
21+
@Override
22+
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
23+
throws ServletException, IOException {
24+
List<Driver> allDrivers = driverService.getAll();
25+
req.setAttribute("drivers", allDrivers);
26+
req.getRequestDispatcher("/WEB-INF/views/drivers/all.jsp").forward(req, resp);
27+
}
28+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package mate.controller.manufacturer;
2+
3+
import java.io.IOException;
4+
import javax.servlet.ServletException;
5+
import javax.servlet.annotation.WebServlet;
6+
import javax.servlet.http.HttpServlet;
7+
import javax.servlet.http.HttpServletRequest;
8+
import javax.servlet.http.HttpServletResponse;
9+
import mate.lib.Injector;
10+
import mate.model.Manufacturer;
11+
import mate.service.ManufacturerService;
12+
13+
@WebServlet(urlPatterns = "/manufacturers/create")
14+
public class CreateManufacturerController extends HttpServlet {
15+
private static final Injector injector =
16+
Injector.getInstance("mate");
17+
private final ManufacturerService manufacturerService =
18+
(ManufacturerService) injector.getInstance(ManufacturerService.class);
19+
20+
@Override
21+
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
22+
throws ServletException, IOException {
23+
req.getRequestDispatcher("/WEB-INF/views/manufacturers/create.jsp").forward(req, resp);
24+
}
25+
26+
@Override
27+
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
28+
throws ServletException, IOException {
29+
Manufacturer manufacturer = new Manufacturer();
30+
String name = req.getParameter("manufacturer_name");
31+
String country = req.getParameter("manufacturer_country");
32+
manufacturer.setName(name);
33+
manufacturer.setCountry(country);
34+
manufacturerService.create(manufacturer);
35+
resp.sendRedirect("/manufacturers");
36+
}
37+
}

0 commit comments

Comments
 (0)