From 06adeea855240b924e58a4fd69ed88643c6149e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Miguez=20Laur=C3=ADa?= Date: Fri, 11 Aug 2023 22:19:57 -0300 Subject: [PATCH 1/3] added spring-data-rest to POM file, delted unused folders --- pom.xml | 5 ++ .../rest/EmployeeRestController.java | 68 ------------------ .../service/EmployeeService.java | 16 ----- .../service/EmployeeServiceImpl.java | 53 -------------- .../dao/EmployeeRepository.class | Bin 0 -> 380 bytes .../rest/EmployeeRestController.class | Bin 0 -> 3254 bytes .../service/EmployeeServiceImpl.class | Bin 0 -> 2776 bytes 7 files changed, 5 insertions(+), 137 deletions(-) delete mode 100644 src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java delete mode 100644 src/main/java/com/manumiguezz/crudapplication/service/EmployeeService.java delete mode 100644 src/main/java/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.java create mode 100644 target/classes/com/manumiguezz/crudapplication/dao/EmployeeRepository.class create mode 100644 target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class create mode 100644 target/classes/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.class 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/rest/EmployeeRestController.java b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java deleted file mode 100644 index 13a5acd..0000000 --- a/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java +++ /dev/null @@ -1,68 +0,0 @@ -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.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping("/api") -public class EmployeeRestController { - - private EmployeeService employeeService; - - public EmployeeRestController (EmployeeService theEmployeeService) { - employeeService = theEmployeeService; - } - - @GetMapping("/employees") - public List findAll(){ - return employeeService.findAll(); - } - - @GetMapping("/employees/{employeeId}") - public Employee getEmployee(@PathVariable int employeeId) { - Employee theEmployee = employeeService.findById(employeeId); - - if (theEmployee == null) { - throw new RuntimeException("Employee id not found - " + employeeId); - } - - return theEmployee; - } - - @PostMapping ("/employees") - public Employee addEmployee(@RequestBody Employee theEmployee) { - - theEmployee.setId(0); - - Employee dbEmployee = employeeService.save(theEmployee); - return dbEmployee; - } - - @PutMapping("/employees") - public Employee updateEmployee(@RequestBody Employee theEmployee) { - Employee dbEmployee = employeeService.save(theEmployee); - return dbEmployee; - } - - @DeleteMapping("/employees/{employeeId} ") - public String deleteEmployee(@PathVariable int employeeId) { - Employee tempEmployee = employeeService.findById(employeeId); - - if (tempEmployee == null) { - throw new RuntimeException("Employee id: " + employeeId + " not found"); - } - - employeeService.deleteByID(employeeId); - - return "Employee with id: " + employeeId + " was deleted"; - } - - - - -} 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/target/classes/com/manumiguezz/crudapplication/dao/EmployeeRepository.class b/target/classes/com/manumiguezz/crudapplication/dao/EmployeeRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..1d2b90478bf1214db37e7022f569317004d1fae9 GIT binary patch literal 380 zcmbV|Jx&BM3`U*hXV|5o;}*DrW`GVP&`3z^2~5^R876V$O+d4k;64-_fI}g|77Ky` ziNbdG{Jrn({pA$^&S1ZRiGdR<0RzPnyeqs~q1CdWlm>4pdx^Lp!HbXv8JTZ6$bSa z2A;d0=(hV8_O$!Uk7M?E+$gr+K3~Pmjg?2p O0VdF__a02wclH6d!F|*K literal 0 HcmV?d00001 diff --git a/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class b/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class new file mode 100644 index 0000000000000000000000000000000000000000..9e92e8b5da7677c629518dc4173952f4be2d9201 GIT binary patch literal 3254 zcmbVOZC4XV6n+K*2}yV{RZ&riij{z}wM9{bR6$hQpp@9CwQrN`5LPz3>Fz8Pd-@0Z z3;HwKbJ}{e=d>StPJdHRPw(t*c7uRGKV&m^=FYv(eeRt*^Y_26{{V0kt7&wgGl@hN zUFc>Qc+S_kW^${pJ*++#HObIDZCHk!Vdxw!RCR)VMTkOLK%PwfRQVv^RxVCSlIDq+^?=a2WbUxKI|(x=|Ah*GqdDbOY7M zX1KMOK_B{)7|7xfatu@d(+)#&#jy0-rpb^SEtGsZJZYF($#A9bWbd@dQtk_)PWlXAC28$2P2WdrfFT;|^NBR5rMq4@!%=Kz6~h zgfnMy*A;FOG;@9%YdevV#0tadx2w{tCSZ<}UHVt+ z>9Ln!W8=Rf`7=o!xJ=(ZbkcVK33_w%Acyx!IvQx>15A=c`*4MEd%|dEXmUHoIozT7qzZhV28=i^gn*xrB?UM) z-uWBy3ibFaysJ>hv;?eQpd1y5`>{5Bxd>m*M@46m?A`P6g@|sE@fM={ z^ihQ9VTh=AXE5sd3@Vlk@vZU{5Y-z2=?#Ho-Uj63-GP*FGNk4QB1Ta&v2!lRf?S4+ z;~k*H=l=Ig|NAwnw34RT8U*S%{vQFiQ!fAj literal 0 HcmV?d00001 diff --git a/target/classes/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.class b/target/classes/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..3008d1ddbb0f85385bcff9a3b9fcebbfec6c52ea GIT binary patch literal 2776 zcmbVOYf}?f7=BI&EQAmh1x1RD7Bzsds8p#zTR_m%0M^i0Yj20_AspH4W_CAN{3Y!# z=+}0pt(VTU{oLQ=bo!pXBnv__!-u`R@4naPy`25$-#32(xQ%KG33O;krqPKmhU3rp z4%ba?RrR%vXQJXUbj?XidUqH)a%1HlbfZT@Dve&G8S)jorq{UDsL5(Wym+BkoQA>c zbyHTjCv8i2g|j0oLSL%YO?y{}Qa~4oWat+m_mQaEuJmkYmtnTp&ZfcbroEPCz84uB z({MbE6X<8SaWpdw+NQLOc~ixg8!P&FG(2hQMd^C^6i#74!(bYxafabU3$B9YiK=i& ze}|h5v9`%Dm@9+^d_Y49KhU#j4C6h9ZslxYw_q^ja)GlL`1!d1wYox-n-s%2yssgf z#(7+zC|e;$A`Cs!edq{RSX4l&+m}jbG>wb6M08aU_f(Wz+@FRVgWe7~vMRmZW(_oq zGn{Q9@u)%HYhvm9itt13r%t<)#w4Z~PS^OhShOu_kH^y6qBqy$mgh1I>;wLo`PJhv^aI?%EspycI z^tL2Hdb_R1L!wpVNy!d)TOu0V)}YanSP|ZqZ9L=-uMubtxf%+KUY4$;IOZ+O_WTV% z-)4)pQ`OzND(I$Cd2Tz~`i9_^t8em(8hf2L74-RrXFr#YFerkalB`Nd6sXF>h)N--2 zVoGfnT9F5Kl1nWpY>zO~Llpw>_=0VFuIKQ2(5&vUF3=Wyimx<$t(MU@45O``C9NHM zoAmvy6YQtupfwqOh_91SFfe+bTZSpz(V}f{H|qI!*HetMM{%8kJwW_vOg`E>F;-|| zk(*{odLrMA?-+*fN+V0tmQ^Q7HabzW(zumn4C#Vp31`vdt}9#(6^4uNBz;gW8mJQI z{$G^3I7pn%p>Fz(V7NtBLj4)g#_y!}PRyZ${xX1N;wR{t8h;5kKJgp0Ux-TJ4&5^( z1N0+_ljx!I^<$z218IDMd7?-U3uKjHk={EQ5x`x#x`?$zPdbUoK*D!5Llh%kYW!Dd zuhGZwGf{ynB@dkOT_|(PaNuIum$^s0VcZWby`sR9#Gh7{hF{_2YYZi@a^-i7{D=%a zKKL7#SAW8ZKQQ)W_zfn2m(c&3RQ{5FYJ&s;FhVJw#{e!MODFIYa=!l=`Zhuy3i#9q zV7i&?G#;Qxkz`0?1*;Uz6kUPb8rf5k2j3nN|1;ubka&x%hI4Pxr{Qu0(*ycM3lERN zgcj(TP~s|~iPyN60A;Wrp2=7RGR>eeegMr16nxVqtcRwf0{f-|tZpRGDzf^|1g@bE r*AFot Date: Sun, 13 Aug 2023 21:46:31 -0300 Subject: [PATCH 2/3] page size adjusted, base path changed --- src/main/resources/application.properties | 5 ++++- target/classes/application.properties | 5 ++++- .../rest/EmployeeRestController.class | Bin 3254 -> 0 bytes .../service/EmployeeService.class | Bin 576 -> 0 bytes .../service/EmployeeServiceImpl.class | Bin 2776 -> 0 bytes 5 files changed, 8 insertions(+), 2 deletions(-) delete mode 100644 target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class delete mode 100644 target/classes/com/manumiguezz/crudapplication/service/EmployeeService.class delete mode 100644 target/classes/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.class 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/rest/EmployeeRestController.class b/target/classes/com/manumiguezz/crudapplication/rest/EmployeeRestController.class deleted file mode 100644 index 9e92e8b5da7677c629518dc4173952f4be2d9201..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3254 zcmbVOZC4XV6n+K*2}yV{RZ&riij{z}wM9{bR6$hQpp@9CwQrN`5LPz3>Fz8Pd-@0Z z3;HwKbJ}{e=d>StPJdHRPw(t*c7uRGKV&m^=FYv(eeRt*^Y_26{{V0kt7&wgGl@hN zUFc>Qc+S_kW^${pJ*++#HObIDZCHk!Vdxw!RCR)VMTkOLK%PwfRQVv^RxVCSlIDq+^?=a2WbUxKI|(x=|Ah*GqdDbOY7M zX1KMOK_B{)7|7xfatu@d(+)#&#jy0-rpb^SEtGsZJZYF($#A9bWbd@dQtk_)PWlXAC28$2P2WdrfFT;|^NBR5rMq4@!%=Kz6~h zgfnMy*A;FOG;@9%YdevV#0tadx2w{tCSZ<}UHVt+ z>9Ln!W8=Rf`7=o!xJ=(ZbkcVK33_w%Acyx!IvQx>15A=c`*4MEd%|dEXmUHoIozT7qzZhV28=i^gn*xrB?UM) z-uWBy3ibFaysJ>hv;?eQpd1y5`>{5Bxd>m*M@46m?A`P6g@|sE@fM={ z^ihQ9VTh=AXE5sd3@Vlk@vZU{5Y-z2=?#Ho-Uj63-GP*FGNk4QB1Ta&v2!lRf?S4+ z;~k*H=l=Ig|NAwnw34RT8U*S%{vQFiQ!fAj 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 fb6d74a8ea19e09050637f0d827a1a3b6ccf60dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmbV}%}&BV6ot>lLizCrk%xedvoUdjnrOs?1fvOw`?0;2A=8$$QxbSI7e0UwWxPd^ zg$skrbLQmCckg}wczpwKiLQ?d;XFuV73-vkO;qq|rGl&o^?Ytkpq)t*m2TWR81w(=>e4nU2|UmJ_OO%4MUM>xHm} zy`5|S1JaUTH;X1TL$-n=qumOKjP@knBrURl?~E0y?k4+vl+$wGH3DHzP7HW*qbh2m leNh$EMK{nC-4b0T>`R7lfWxhIw6@wf-dd6p(OFlVd;;`jrXK(R diff --git a/target/classes/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.class b/target/classes/com/manumiguezz/crudapplication/service/EmployeeServiceImpl.class deleted file mode 100644 index 3008d1ddbb0f85385bcff9a3b9fcebbfec6c52ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2776 zcmbVOYf}?f7=BI&EQAmh1x1RD7Bzsds8p#zTR_m%0M^i0Yj20_AspH4W_CAN{3Y!# z=+}0pt(VTU{oLQ=bo!pXBnv__!-u`R@4naPy`25$-#32(xQ%KG33O;krqPKmhU3rp z4%ba?RrR%vXQJXUbj?XidUqH)a%1HlbfZT@Dve&G8S)jorq{UDsL5(Wym+BkoQA>c zbyHTjCv8i2g|j0oLSL%YO?y{}Qa~4oWat+m_mQaEuJmkYmtnTp&ZfcbroEPCz84uB z({MbE6X<8SaWpdw+NQLOc~ixg8!P&FG(2hQMd^C^6i#74!(bYxafabU3$B9YiK=i& ze}|h5v9`%Dm@9+^d_Y49KhU#j4C6h9ZslxYw_q^ja)GlL`1!d1wYox-n-s%2yssgf z#(7+zC|e;$A`Cs!edq{RSX4l&+m}jbG>wb6M08aU_f(Wz+@FRVgWe7~vMRmZW(_oq zGn{Q9@u)%HYhvm9itt13r%t<)#w4Z~PS^OhShOu_kH^y6qBqy$mgh1I>;wLo`PJhv^aI?%EspycI z^tL2Hdb_R1L!wpVNy!d)TOu0V)}YanSP|ZqZ9L=-uMubtxf%+KUY4$;IOZ+O_WTV% z-)4)pQ`OzND(I$Cd2Tz~`i9_^t8em(8hf2L74-RrXFr#YFerkalB`Nd6sXF>h)N--2 zVoGfnT9F5Kl1nWpY>zO~Llpw>_=0VFuIKQ2(5&vUF3=Wyimx<$t(MU@45O``C9NHM zoAmvy6YQtupfwqOh_91SFfe+bTZSpz(V}f{H|qI!*HetMM{%8kJwW_vOg`E>F;-|| zk(*{odLrMA?-+*fN+V0tmQ^Q7HabzW(zumn4C#Vp31`vdt}9#(6^4uNBz;gW8mJQI z{$G^3I7pn%p>Fz(V7NtBLj4)g#_y!}PRyZ${xX1N;wR{t8h;5kKJgp0Ux-TJ4&5^( z1N0+_ljx!I^<$z218IDMd7?-U3uKjHk={EQ5x`x#x`?$zPdbUoK*D!5Llh%kYW!Dd zuhGZwGf{ynB@dkOT_|(PaNuIum$^s0VcZWby`sR9#Gh7{hF{_2YYZi@a^-i7{D=%a zKKL7#SAW8ZKQQ)W_zfn2m(c&3RQ{5FYJ&s;FhVJw#{e!MODFIYa=!l=`Zhuy3i#9q zV7i&?G#;Qxkz`0?1*;Uz6kUPb8rf5k2j3nN|1;ubka&x%hI4Pxr{Qu0(*ycM3lERN zgcj(TP~s|~iPyN60A;Wrp2=7RGR>eeegMr16nxVqtcRwf0{f-|tZpRGDzf^|1g@bE r*AFot Date: Mon, 14 Aug 2023 17:56:43 -0300 Subject: [PATCH 3/3] DAO classes deleted, rest controller added again, errors to be fixed --- .../crudapplication/dao/EmployeeDAO.java | 15 --- .../dao/EmployeeDAOJpaImpl.java | 50 ---------- .../rest/EmployeeRestController.java | 97 +++++++++++++++++++ 3 files changed, 97 insertions(+), 65 deletions(-) delete mode 100644 src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAO.java delete mode 100644 src/main/java/com/manumiguezz/crudapplication/dao/EmployeeDAOJpaImpl.java create mode 100644 src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java 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 new file mode 100644 index 0000000..1c7a781 --- /dev/null +++ b/src/main/java/com/manumiguezz/crudapplication/rest/EmployeeRestController.java @@ -0,0 +1,97 @@ +package com.manumiguezz.crudapplication.rest; + +import com.manumiguezz.crudapplication.entity.Employee; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/api") +public class EmployeeRestController { + + private Employee employeeService; + + @Autowired + public EmployeeRestController(EmployeeService theEmployeeService) { + employeeService = theEmployeeService; + } + + // expose "/employees" and return a list of employees + @GetMapping("/employees") + 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) { + throw new RuntimeException("Employee id not found - " + employeeId); + } + + return theEmployee; + } + + // 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; + } + + // 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 not found - " + employeeId); + } + + employeeService.deleteById(employeeId); + + return "Deleted employee id - " + employeeId; + } + +} + + + + + + + + + + + + + +