diff --git a/pom.xml b/pom.xml
index a4e1e3d..976738c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,10 +17,15 @@
17
+
+ org.springframework.boot
+ spring-boot-starter-data-rest
+
org.springframework.boot
spring-boot-starter-data-jpa
+
org.springframework.boot
spring-boot-starter-web
diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java
deleted file mode 100644
index e6f13fe..0000000
--- a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java
+++ /dev/null
@@ -1,15 +0,0 @@
-//package com.manumiguezz.crudapplication.dao;
-//
-//import com.manumiguezz.crudapplication.entity.Employee;
-//
-//import java.util.List;
-//
-//public interface EmployeeDAO {
-// List findAll();
-//
-// Employee findById(int theId);
-//
-// Employee save(Employee theEmployee);
-//
-// void deleteByID(int theId);
-//}
diff --git a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java b/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java
deleted file mode 100644
index 6008827..0000000
--- a/src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java
+++ /dev/null
@@ -1,50 +0,0 @@
-//package com.manumiguezz.crudapplication.dao;
-//
-//import com.manumiguezz.crudapplication.entity.Employee;
-//import jakarta.persistence.EntityManager;
-//import jakarta.persistence.TypedQuery;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.stereotype.Repository;
-//
-//import java.util.List;
-//
-//@Repository
-//public class EmployeeDAOJpaImpl implements EmployeeDAO {
-//
-// private EntityManager entityManager;
-//
-// @Autowired
-// public EmployeeDAOJpaImpl(EntityManager theEntityManager) {
-// entityManager = theEntityManager;
-// }
-//
-// @Override
-// public List findAll() {
-//
-// TypedQuery theQuery = entityManager.createQuery("from Employee", Employee.class);
-//
-// List employees = theQuery.getResultList();
-//
-// return employees;
-// }
-//
-// @Override
-// public Employee findById(int theId) {
-// Employee theEmployee = entityManager.find(Employee.class, theId);
-// return theEmployee;
-// }
-//
-// @Override
-// public Employee save(Employee theEmployee) {
-// // if ID of passed employee is equal to 0, it will insert a new one, else it will just update
-// Employee dbEmployee = entityManager.merge(theEmployee);
-// return dbEmployee;
-// }
-//
-// @Override
-// public void deleteByID(int theId) {
-// Employee theEmployee = entityManager.find(Employee.class, theId);
-// entityManager.remove(theEmployee);
-// }
-//
-//}
diff --git a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java
index 13a5acd..1c7a781 100644
--- a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java
+++ b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java
@@ -1,9 +1,7 @@
package com.manumiguezz.crudapplication.rest;
-import com.manumiguezz.crudapplication.dao.EmployeeDAO;
import com.manumiguezz.crudapplication.entity.Employee;
-import com.manumiguezz.crudapplication.service.EmployeeService;
-import com.manumiguezz.crudapplication.service.EmployeeServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -12,19 +10,24 @@
@RequestMapping("/api")
public class EmployeeRestController {
- private EmployeeService employeeService;
+ private Employee employeeService;
- public EmployeeRestController (EmployeeService theEmployeeService) {
+ @Autowired
+ public EmployeeRestController(EmployeeService theEmployeeService) {
employeeService = theEmployeeService;
}
+ // expose "/employees" and return a list of employees
@GetMapping("/employees")
- public List findAll(){
+ public List findAll() {
return employeeService.findAll();
}
+ // add mapping for GET /employees/{employeeId}
+
@GetMapping("/employees/{employeeId}")
public Employee getEmployee(@PathVariable int employeeId) {
+
Employee theEmployee = employeeService.findById(employeeId);
if (theEmployee == null) {
@@ -34,35 +37,61 @@ public Employee getEmployee(@PathVariable int employeeId) {
return theEmployee;
}
- @PostMapping ("/employees")
+ // add mapping for POST /employees - add new employee
+
+ @PostMapping("/employees")
public Employee addEmployee(@RequestBody Employee theEmployee) {
+ // also just in case they pass an id in JSON ... set id to 0
+ // this is to force a save of new item ... instead of update
+
theEmployee.setId(0);
Employee dbEmployee = employeeService.save(theEmployee);
+
return dbEmployee;
}
+ // add mapping for PUT /employees - update existing employee
+
@PutMapping("/employees")
public Employee updateEmployee(@RequestBody Employee theEmployee) {
+
Employee dbEmployee = employeeService.save(theEmployee);
+
return dbEmployee;
}
- @DeleteMapping("/employees/{employeeId} ")
+ // add mapping for DELETE /employees/{employeeId} - delete employee
+
+ @DeleteMapping("/employees/{employeeId}")
public String deleteEmployee(@PathVariable int employeeId) {
+
Employee tempEmployee = employeeService.findById(employeeId);
+ // throw exception if null
+
if (tempEmployee == null) {
- throw new RuntimeException("Employee id: " + employeeId + " not found");
+ throw new RuntimeException("Employee id not found - " + employeeId);
}
- employeeService.deleteByID(employeeId);
+ employeeService.deleteById(employeeId);
- return "Employee with id: " + employeeId + " was deleted";
+ return "Deleted employee id - " + employeeId;
}
+}
+
+
+
+
+
+
+
+
+
+
+
-}
diff --git a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java
deleted file mode 100644
index ff56fdb..0000000
--- a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.manumiguezz.crudapplication.service;
-
-import com.manumiguezz.crudapplication.entity.Employee;
-
-import java.util.List;
-
-public interface EmployeeService {
- List findAll();
-
- Employee findById(int theId);
-
- Employee save(Employee theEmployee);
-
- void deleteByID(int theId);
-
-}
diff --git a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java b/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java
deleted file mode 100644
index 6acf772..0000000
--- a/src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.manumiguezz.crudapplication.service;
-
-import com.manumiguezz.crudapplication.dao.EmployeeDAO;
-import com.manumiguezz.crudapplication.dao.EmployeeRepository;
-import com.manumiguezz.crudapplication.entity.Employee;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-import java.util.Optional;
-
-@Service
-public class EmployeeServiceImpl implements EmployeeService{
-
- private EmployeeRepository employeeRepository;
-
- @Autowired
- public EmployeeServiceImpl (EmployeeRepository theEmployeeRepository) {
- employeeRepository = theEmployeeRepository;
- }
-
- @Override
- public List findAll() {
- return employeeRepository.findAll();
- }
-
- @Override
- public Employee findById(int theId) {
- Optional result = employeeRepository.findById(theId);
-
- Employee theEmployee;
-
- if (result.isPresent()) {
- theEmployee = result.get();
- }
- else {
- throw new RuntimeException("Did not find employee id: " + theId);
- }
-
- return theEmployee;
- }
-
- @Override
- public Employee save(Employee theEmployee) {
- return employeeRepository.save(theEmployee);
- }
-
- @Override
- public void deleteByID(int theId) {
- employeeRepository.deleteById(theId);
- }
-}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 4a4b39a..f95f4bc 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,4 +1,7 @@
spring.datasource.url=jdbc:mysql://localhost:3306/employee_directory
spring.datasource.username=springstudent
-spring.datasource.password=springstudent
\ No newline at end of file
+spring.datasource.password=springstudent
+
+spring.data.rest.base-path=/company-api
+spring.data.rest.default-page-size=40
\ No newline at end of file
diff --git a/target/classes/application.properties b/target/classes/application.properties
index 4a4b39a..f95f4bc 100644
--- a/target/classes/application.properties
+++ b/target/classes/application.properties
@@ -1,4 +1,7 @@
spring.datasource.url=jdbc:mysql://localhost:3306/employee_directory
spring.datasource.username=springstudent
-spring.datasource.password=springstudent
\ No newline at end of file
+spring.datasource.password=springstudent
+
+spring.data.rest.base-path=/company-api
+spring.data.rest.default-page-size=40
\ No newline at end of file
diff --git a/target/classes/com/manumiguezz/crudapplication/dao/EmployeeRepository.class b/target/classes/com/manumiguezz/crudapplication/dao/EmployeeRepository.class
new file mode 100644
index 0000000..1d2b904
Binary files /dev/null and b/target/classes/com/manumiguezz/crudapplication/dao/EmployeeRepository.class differ
diff --git a/target/classes/com/manumiguezz/crudapplication/service/EmployeeService.class b/target/classes/com/manumiguezz/crudapplication/service/EmployeeService.class
deleted file mode 100644
index fb6d74a..0000000
Binary files a/target/classes/com/manumiguezz/crudapplication/service/EmployeeService.class and /dev/null differ