From 6ebc32906109cc7a5756beeff9d2ad3be4de2bee Mon Sep 17 00:00:00 2001 From: bintescu <41958601+bintescu@users.noreply.github.com> Date: Wed, 26 Aug 2020 17:19:17 +0300 Subject: [PATCH 01/10] Primul commit --- .../Controller/.UserController.java.swp | Bin 0 -> 12288 bytes .../demospring/Controller/UserController.java | 18 +++++++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/ausy_technologies/demospring/Controller/.UserController.java.swp diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/.UserController.java.swp b/src/main/java/com/ausy_technologies/demospring/Controller/.UserController.java.swp new file mode 100644 index 0000000000000000000000000000000000000000..55a34b58f8883f4c31971545861c3e3459f2e4b8 GIT binary patch literal 12288 zcmeI2&u<$=6vwAr5G@oaDpW{FLwa$b*)0y0B0_^5Cxj53gt&=RF45RKiKkibnBB1> zD~ftRoZtiqsec39xWR?+Lm>DQkdS&pDir4J}tsd%@ltmGVeOZ%{*K3l=bnCaH>ZG8z$xGqa0)mDoB~b(r+`zyDc}@v3OEJsK?Ov>*iR2K_WVOg z9{>OEJpcdrC}Tf>55QaC8SwL2#y$m~fRDh3;2qEcRq#4k1uuaM;3@DVI1m1Kgt2eI zH{fgVK8QgG4!{kdKozWk3*h#{jC}`Az?a|_D1sGm4m=LdfYadi8OGiN?}Byk8dw1r z!EdJ-y8}+Z7vOVn3m6cAW$+4E09OGAe?pJn!S~=RZ~{IC66}I2;6>np8DRCh2iM=F z>=bYcI0c*nP64OD-xN5;Ujw-8t^YlJ$+@Yj#A~3{uq5NA7syZ=Nu7s_t<@l-g6Vli zR!8==-YAEv!kbzJyl0uoZ3;bZ$s zhUw(Ifk-8iBn`HuLpfn$8tzV<+S-_d6ZZ$}FMMpt6l%g!(6BAHYd2vr1|*$qb==fR z{|W{H1)24aI%a(v$vR*yJBvBE$2&P?+chXF!(A)LW=2;qTtIvKQw8Y}7@2pLL?@%Z ztSMo-(!D_P|KP8QY^W=CIHb z45do7*%ch0Dw$-+6{)rZr^#AhO4eEoBx{GP&)8(iq@65DhOX+SFw#m_!f{p=**)5A zVRQM0(T6IQc#2FDsDvU(tV^%|8uLAU6Te`hu6$aW1aov!E7H5f^o;QwSgY&UaBAB2 z8b*a4ZEVz;ey`(wuif#z7mJ!a)bW9LD9c_Mr_vKqq>V62N8WSulRU~&M2WX2Dn`ex zez$H(U3WB|dt$ip96$G+#&a(f$D^H+zW?XWMU5YJZz;cF-T#Xpts3O1qh%iL^Zc&q J_Oza7e*sp*rr`hp literal 0 HcmV?d00001 diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java index 97265cb..f4a959d 100644 --- a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java +++ b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java @@ -13,7 +13,7 @@ public class UserController { @Autowired - private UserService userService; + private UserService userServ; @@ -21,7 +21,7 @@ public class UserController { public Role saveRole(@RequestBody Role role) { - Role roleAdded = this.userService.saveRole(role); + Role roleAdded = this.userServ.saveRole(role); return roleAdded; } @@ -30,46 +30,46 @@ public Role saveRole(@RequestBody Role role) { @PostMapping("/addUser") public User saveUser(@RequestBody User user) { - User userAdded = this.userService.saveUser(user); + User userAdded = this.userServ.saveUser(user); return userAdded; } @PostMapping("/addUser2/{idRole}") public User saveUser2(@RequestBody User user, @PathVariable int idRole) { - return this.userService.saveUser2(user,idRole); + return this.userServ.saveUser2(user,idRole); } @PostMapping("/addUser3/{roleList}") public User saveUser3(@RequestBody User user , @PathVariable List roleList) { - return this.userService.saveUser3(user,roleList); + return this.userServ.saveUser3(user,roleList); } @GetMapping("/findRoleBy/{id}") public Role findRoleById(@PathVariable int id) { - return this.userService.findRoleById(id); + return this.userServ.findRoleById(id); } @GetMapping("/findAllRoles") public List findAllRoles() { - return userService.findAllRoles(); + return userServ.findAllRoles(); } @GetMapping("/allUsers") public List findAllUsers() { - return this.userService.findAllUsers(); + return this.userServ.findAllUsers(); } @DeleteMapping("/deleteUserById/{id}") public void deleteUser(@PathVariable int id) { - this.userService.deleteUserById(id); + this.userServ.deleteUserById(id); } From bc6481a960e12e7a81cbaede84a1b08aae6ae315 Mon Sep 17 00:00:00 2001 From: bintescu <41958601+bintescu@users.noreply.github.com> Date: Wed, 26 Aug 2020 22:17:17 +0300 Subject: [PATCH 02/10] Update si Delete --- .../demospring/Controller/UserController.java | 19 +++++++ .../demospring/Service/UserService.java | 52 +++++++++++++++++-- src/main/resources/application.properties | 3 +- 3 files changed, 69 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java index 97265cb..d058129 100644 --- a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java +++ b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java @@ -73,4 +73,23 @@ public void deleteUser(@PathVariable int id) } + @PostMapping("/updateUser") + public User updateUser(@RequestParam int id, @RequestBody User user){ + return userService.updateUser(id,user); + } + + @PostMapping("/updateUser2/{roleList}") + public User updateUser2(@RequestParam int id , @PathVariable List roleList){ + return userService.updateUser2(id,roleList); + } + + @PostMapping("/updateRole/{name}") + public Role updateRole(@PathVariable String name, @RequestParam int id){ + return userService.updateRole(id,name); + } + + @PostMapping("deleteRole/{id}") + public void deleteRolebyId(@PathVariable int id){ + userService.deleteRolebyId(id); + } } diff --git a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java index 7c260ee..b20d0f5 100644 --- a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java +++ b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java @@ -8,10 +8,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; @Service public class UserService { @@ -89,6 +86,55 @@ public void deleteUserById(int id) this.userRepository.deleteById(id); } + public User updateUser(int id, User user){ + User modifiedUser = userRepository.findById(id); + + if(modifiedUser != null){ + + modifiedUser.setRoleList(user.getRoleList()); + modifiedUser.setFirstName(user.getFirstName()); + modifiedUser.setLastName(user.getLastName()); + modifiedUser.setEmail(user.getEmail()); + modifiedUser.setUsername(user.getUsername()); + modifiedUser.setPassword(user.getPassword()); + userRepository.save(modifiedUser); + } + else { + throw new RuntimeException("User not found !"); + } + return modifiedUser; + } + + public User updateUser2(int id, List roleList){ + User modifiedUser = userRepository.findById(id); + + if(modifiedUser != null){ + + modifiedUser.setRoleList(roleList); + userRepository.save(modifiedUser); + } + else { + throw new RuntimeException("User not found !"); + } + return modifiedUser; + } + + public Role updateRole(int id, String name){ + Role modifiedRole = roleRepository.findById(id).get(); + + if(modifiedRole != null){ + modifiedRole.setName(name); + roleRepository.save(modifiedRole); + } + else { + throw new RuntimeException("Role not found!"); + } + return modifiedRole; + } + + public void deleteRolebyId(int id){ + roleRepository.deleteById(id); + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 81adda9..7decbcc 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,8 +1,7 @@ - server.port=8082 spring.datasource.url=jdbc:mysql://localhost/employees_management spring.datasource.username=root -spring.datasource.password=laurentiu +spring.datasource.password=ruT@*05!((( spring.jpa.generate-ddl=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect logging.level.org.hibernate.SQL=debug From 7555f4be3025609e6654afe5dadb9f2454dd7cc1 Mon Sep 17 00:00:00 2001 From: bintescu <41958601+bintescu@users.noreply.github.com> Date: Wed, 26 Aug 2020 22:29:52 +0300 Subject: [PATCH 03/10] Restore name of userService --- .../demospring/Controller/UserController.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java index f3611c4..d058129 100644 --- a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java +++ b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java @@ -13,7 +13,7 @@ public class UserController { @Autowired - private UserService userServ; + private UserService userService; @@ -21,7 +21,7 @@ public class UserController { public Role saveRole(@RequestBody Role role) { - Role roleAdded = this.userServ.saveRole(role); + Role roleAdded = this.userService.saveRole(role); return roleAdded; } @@ -30,46 +30,46 @@ public Role saveRole(@RequestBody Role role) { @PostMapping("/addUser") public User saveUser(@RequestBody User user) { - User userAdded = this.userServ.saveUser(user); + User userAdded = this.userService.saveUser(user); return userAdded; } @PostMapping("/addUser2/{idRole}") public User saveUser2(@RequestBody User user, @PathVariable int idRole) { - return this.userServ.saveUser2(user,idRole); + return this.userService.saveUser2(user,idRole); } @PostMapping("/addUser3/{roleList}") public User saveUser3(@RequestBody User user , @PathVariable List roleList) { - return this.userServ.saveUser3(user,roleList); + return this.userService.saveUser3(user,roleList); } @GetMapping("/findRoleBy/{id}") public Role findRoleById(@PathVariable int id) { - return this.userServ.findRoleById(id); + return this.userService.findRoleById(id); } @GetMapping("/findAllRoles") public List findAllRoles() { - return userServ.findAllRoles(); + return userService.findAllRoles(); } @GetMapping("/allUsers") public List findAllUsers() { - return this.userServ.findAllUsers(); + return this.userService.findAllUsers(); } @DeleteMapping("/deleteUserById/{id}") public void deleteUser(@PathVariable int id) { - this.userServ.deleteUserById(id); + this.userService.deleteUserById(id); } From c2424cf311536299ba99b3492d0de48cd2dfb45d Mon Sep 17 00:00:00 2001 From: bintescu <41958601+bintescu@users.noreply.github.com> Date: Wed, 26 Aug 2020 23:08:21 +0300 Subject: [PATCH 04/10] ResponseEntity Checked --- .../demospring/Controller/UserController.java | 73 +++++++++++++------ 1 file changed, 51 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java index d058129..1e3fa59 100644 --- a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java +++ b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java @@ -4,6 +4,9 @@ import com.ausy_technologies.demospring.Model.DAO.User; import com.ausy_technologies.demospring.Service.UserService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -18,52 +21,69 @@ public class UserController { @PostMapping("/addRole") - public Role saveRole(@RequestBody Role role) { - - + public ResponseEntity saveRole(@RequestBody Role role) { Role roleAdded = this.userService.saveRole(role); - return roleAdded; + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response ","saveRole"); + return ResponseEntity.status(HttpStatus.CREATED).headers(httpHeaders).body(roleAdded); } @PostMapping("/addUser") - public User saveUser(@RequestBody User user) { + public ResponseEntity saveUser(@RequestBody User user) { User userAdded = this.userService.saveUser(user); - return userAdded; + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response","saveUser"); + return ResponseEntity.status(HttpStatus.ACCEPTED).headers(httpHeaders).body(userAdded); } @PostMapping("/addUser2/{idRole}") - public User saveUser2(@RequestBody User user, @PathVariable int idRole) + public ResponseEntity saveUser2(@RequestBody User user, @PathVariable int idRole) { - return this.userService.saveUser2(user,idRole); + User usedAdded = userService.saveUser2(user,idRole); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response","saveUser2"); + return ResponseEntity.status(HttpStatus.OK).headers(httpHeaders).body(usedAdded); } @PostMapping("/addUser3/{roleList}") - public User saveUser3(@RequestBody User user , @PathVariable List roleList) + public ResponseEntity saveUser3(@RequestBody User user , @PathVariable List roleList) { - return this.userService.saveUser3(user,roleList); + User userAdded = userService.saveUser3(user,roleList); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response","saveUser3"); + return ResponseEntity.status(HttpStatus.CREATED).headers(httpHeaders).body(userAdded); } @GetMapping("/findRoleBy/{id}") - public Role findRoleById(@PathVariable int id) + public ResponseEntity findRoleById(@PathVariable int id) { - return this.userService.findRoleById(id); + Role roleSearched = this.userService.findRoleById(id); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response","findRoleById"); + return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(roleSearched); } @GetMapping("/findAllRoles") - public List findAllRoles() + public ResponseEntity> findAllRoles() { - return userService.findAllRoles(); + List allRoles = userService.findAllRoles(); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response","findAllRoles"); + return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(allRoles); } @GetMapping("/allUsers") - public List findAllUsers() + public ResponseEntity> findAllUsers() { - return this.userService.findAllUsers(); + List allUsers = this.userService.findAllUsers(); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response","findAllUsers"); + return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(allUsers); } @DeleteMapping("/deleteUserById/{id}") @@ -74,18 +94,27 @@ public void deleteUser(@PathVariable int id) } @PostMapping("/updateUser") - public User updateUser(@RequestParam int id, @RequestBody User user){ - return userService.updateUser(id,user); + public ResponseEntity updateUser(@RequestParam int id, @RequestBody User user){ + User updatedUser = userService.updateUser(id,user); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response","updateUser"); + return ResponseEntity.status(HttpStatus.RESET_CONTENT).headers(httpHeaders).body(updatedUser); } @PostMapping("/updateUser2/{roleList}") - public User updateUser2(@RequestParam int id , @PathVariable List roleList){ - return userService.updateUser2(id,roleList); + public ResponseEntity updateUser2(@RequestParam int id , @PathVariable List roleList){ + User updatedUser = userService.updateUser2(id,roleList); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response","updateUser"); + return ResponseEntity.status(HttpStatus.RESET_CONTENT).headers(httpHeaders).body(updatedUser); } @PostMapping("/updateRole/{name}") - public Role updateRole(@PathVariable String name, @RequestParam int id){ - return userService.updateRole(id,name); + public ResponseEntity updateRole(@PathVariable String name, @RequestParam int id){ + Role updatedRole = userService.updateRole(id,name); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response","updateRole"); + return ResponseEntity.status(HttpStatus.RESET_CONTENT).headers(httpHeaders).body(updatedRole); } @PostMapping("deleteRole/{id}") From 4d8b0deb6d40070fb98810c317d7ee7de0182a73 Mon Sep 17 00:00:00 2001 From: bintescu <41958601+bintescu@users.noreply.github.com> Date: Thu, 27 Aug 2020 00:25:42 +0300 Subject: [PATCH 05/10] ErrorResponse implemented. --- .../demospring/Controller/ErrorResponse.java | 30 ++++++++++ .../demospring/Controller/UserController.java | 58 +++++++++++++++++-- .../demospring/DemospringApplication.java | 3 + .../demospring/Service/UserService.java | 37 +++++++----- 4 files changed, 110 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/ausy_technologies/demospring/Controller/ErrorResponse.java diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/ErrorResponse.java b/src/main/java/com/ausy_technologies/demospring/Controller/ErrorResponse.java new file mode 100644 index 0000000..91d731c --- /dev/null +++ b/src/main/java/com/ausy_technologies/demospring/Controller/ErrorResponse.java @@ -0,0 +1,30 @@ +package com.ausy_technologies.demospring.Controller; + +public class ErrorResponse extends RuntimeException { + + private String errorMessage; + private int errorId; + public ErrorResponse(){ + + } + + public ErrorResponse(String errorMessage, int errorId) { + super(errorMessage); + this.errorMessage = errorMessage; + this.errorId = errorId; + } + + public ErrorResponse(Throwable cause, String errorMessage, int errorId) { + super(errorMessage, cause); + this.errorMessage = errorMessage; + this.errorId = errorId; + } + + public String getErrorMessage() { + return errorMessage; + } + + public int getErrorId() { + return errorId; + } +} diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java index 1e3fa59..6d6cd94 100644 --- a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java +++ b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java @@ -61,9 +61,16 @@ public ResponseEntity saveUser3(@RequestBody User user , @PathVariable Lis @GetMapping("/findRoleBy/{id}") public ResponseEntity findRoleById(@PathVariable int id) { - Role roleSearched = this.userService.findRoleById(id); HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Response","findRoleById"); + Role roleSearched = null; + try { + roleSearched = this.userService.findRoleById(id); + }catch (ErrorResponse e){ + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); + } + return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(roleSearched); } @@ -73,6 +80,9 @@ public ResponseEntity> findAllRoles() List allRoles = userService.findAllRoles(); HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Response","findAllRoles"); + if(allRoles.size() == 0 ){ + return ResponseEntity.status(HttpStatus.NO_CONTENT).headers(httpHeaders).body(null); + } return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(allRoles); } @@ -83,6 +93,9 @@ public ResponseEntity> findAllUsers() List allUsers = this.userService.findAllUsers(); HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Response","findAllUsers"); + if(allUsers.size() == 0 ){ + return ResponseEntity.status(HttpStatus.NO_CONTENT).headers(httpHeaders).body(null); + } return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(allUsers); } @@ -95,25 +108,47 @@ public void deleteUser(@PathVariable int id) @PostMapping("/updateUser") public ResponseEntity updateUser(@RequestParam int id, @RequestBody User user){ - User updatedUser = userService.updateUser(id,user); + User updatedUser = null; HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Response","updateUser"); + try{ + updatedUser = userService.updateUser(id,user); + + }catch (ErrorResponse errorResponse){ + errorResponse.printStackTrace(); + return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); + } + return ResponseEntity.status(HttpStatus.RESET_CONTENT).headers(httpHeaders).body(updatedUser); } @PostMapping("/updateUser2/{roleList}") public ResponseEntity updateUser2(@RequestParam int id , @PathVariable List roleList){ - User updatedUser = userService.updateUser2(id,roleList); + User updatedUser = null ; HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Response","updateUser"); + try{ + updatedUser = userService.updateUser2(id,roleList); + }catch (ErrorResponse e){ + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); + } + return ResponseEntity.status(HttpStatus.RESET_CONTENT).headers(httpHeaders).body(updatedUser); } @PostMapping("/updateRole/{name}") public ResponseEntity updateRole(@PathVariable String name, @RequestParam int id){ - Role updatedRole = userService.updateRole(id,name); HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Response","updateRole"); + Role updatedRole = null; + try { + updatedRole = userService.updateRole(id,name); + }catch (ErrorResponse e){ + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); + } + return ResponseEntity.status(HttpStatus.RESET_CONTENT).headers(httpHeaders).body(updatedRole); } @@ -121,4 +156,19 @@ public ResponseEntity updateRole(@PathVariable String name, @RequestParam public void deleteRolebyId(@PathVariable int id){ userService.deleteRolebyId(id); } + + @GetMapping("getUser/{id}") + public ResponseEntity findUserById(@PathVariable int id){ + User searchedUser = null ; + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Response","getuser"); + try{ + searchedUser = userService.findUserById(id); + }catch (ErrorResponse e){ + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); + } + return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(searchedUser); + } + } diff --git a/src/main/java/com/ausy_technologies/demospring/DemospringApplication.java b/src/main/java/com/ausy_technologies/demospring/DemospringApplication.java index 76466f6..64b6d8a 100644 --- a/src/main/java/com/ausy_technologies/demospring/DemospringApplication.java +++ b/src/main/java/com/ausy_technologies/demospring/DemospringApplication.java @@ -7,7 +7,10 @@ public class DemospringApplication { public static void main(String[] args) { + SpringApplication.run(DemospringApplication.class, args); + + } } diff --git a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java index b20d0f5..b82e174 100644 --- a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java +++ b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java @@ -1,5 +1,6 @@ package com.ausy_technologies.demospring.Service; +import com.ausy_technologies.demospring.Controller.ErrorResponse; import com.ausy_technologies.demospring.Model.DAO.Role; import com.ausy_technologies.demospring.Model.DAO.User; import com.ausy_technologies.demospring.Repository.RoleRepository; @@ -47,7 +48,7 @@ public User saveUser2(User user ,int idRole) } else { - throw new RuntimeException("Role not found"); + throw new ErrorResponse("User not found",404); } @@ -65,7 +66,11 @@ public User saveUser3( User user ,List roleList) public Role findRoleById(int id) { - return this.roleRepository.findById(id).get(); + Role role = roleRepository.findById(id).get(); + if(role == null){ + throw new ErrorResponse("Role not found !",404); + } + return role; } @@ -74,6 +79,13 @@ public List findAllRoles() return this.roleRepository.findAll(); } + public User findUserById(int id){ + User user = this.userRepository.findById(id); + if(user == null){ + throw new ErrorResponse("User not found !",404); + } + return user; + } public List findAllUsers() { @@ -81,10 +93,7 @@ public List findAllUsers() } - public void deleteUserById(int id) - { - this.userRepository.deleteById(id); - } + public void deleteUserById(int id) { this.userRepository.deleteById(id); } public User updateUser(int id, User user){ User modifiedUser = userRepository.findById(id); @@ -100,7 +109,7 @@ public User updateUser(int id, User user){ userRepository.save(modifiedUser); } else { - throw new RuntimeException("User not found !"); + throw new ErrorResponse("User not found !",404); } return modifiedUser; } @@ -114,21 +123,21 @@ public User updateUser2(int id, List roleList){ userRepository.save(modifiedUser); } else { - throw new RuntimeException("User not found !"); + throw new ErrorResponse("User not found !",404); } return modifiedUser; } public Role updateRole(int id, String name){ - Role modifiedRole = roleRepository.findById(id).get(); + Role modifiedRole = null; - if(modifiedRole != null){ - modifiedRole.setName(name); + try{ + modifiedRole = roleRepository.findById(id).get(); roleRepository.save(modifiedRole); + }catch (RuntimeException e){ + throw new ErrorResponse(e,"Role not found !",404); } - else { - throw new RuntimeException("Role not found!"); - } + return modifiedRole; } From 51aca93b39d71069c16999d106a195846f968705 Mon Sep 17 00:00:00 2001 From: bintescu <41958601+bintescu@users.noreply.github.com> Date: Thu, 27 Aug 2020 11:45:25 +0300 Subject: [PATCH 06/10] Post to PUT --- .../demospring/Controller/UserController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java index 6d6cd94..dd07a9f 100644 --- a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java +++ b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java @@ -106,7 +106,7 @@ public void deleteUser(@PathVariable int id) } - @PostMapping("/updateUser") + @PutMapping("/updateUser") public ResponseEntity updateUser(@RequestParam int id, @RequestBody User user){ User updatedUser = null; HttpHeaders httpHeaders = new HttpHeaders(); @@ -122,7 +122,7 @@ public ResponseEntity updateUser(@RequestParam int id, @RequestBody User u return ResponseEntity.status(HttpStatus.RESET_CONTENT).headers(httpHeaders).body(updatedUser); } - @PostMapping("/updateUser2/{roleList}") + @PutMapping("/updateUser2/{roleList}") public ResponseEntity updateUser2(@RequestParam int id , @PathVariable List roleList){ User updatedUser = null ; HttpHeaders httpHeaders = new HttpHeaders(); @@ -137,7 +137,7 @@ public ResponseEntity updateUser2(@RequestParam int id , @PathVariable Lis return ResponseEntity.status(HttpStatus.RESET_CONTENT).headers(httpHeaders).body(updatedUser); } - @PostMapping("/updateRole/{name}") + @PutMapping("/updateRole/{name}") public ResponseEntity updateRole(@PathVariable String name, @RequestParam int id){ HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Response","updateRole"); @@ -152,7 +152,7 @@ public ResponseEntity updateRole(@PathVariable String name, @RequestParam return ResponseEntity.status(HttpStatus.RESET_CONTENT).headers(httpHeaders).body(updatedRole); } - @PostMapping("deleteRole/{id}") + @DeleteMapping("deleteRole/{id}") public void deleteRolebyId(@PathVariable int id){ userService.deleteRolebyId(id); } From b62b42f4d1fbf77d1ba0d0fc9e3fc62b76bac461 Mon Sep 17 00:00:00 2001 From: bintescu <41958601+bintescu@users.noreply.github.com> Date: Thu, 27 Aug 2020 22:44:41 +0300 Subject: [PATCH 07/10] updateRole modified --- pom.xml | 4 ++++ .../demospring/Controller/UserController.java | 2 +- .../demospring/Repository/RoleRepository.java | 5 ++--- .../ausy_technologies/demospring/Service/UserService.java | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 04ef2c9..902d9a7 100644 --- a/pom.xml +++ b/pom.xml @@ -28,6 +28,10 @@ spring-boot-starter-web + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + mysql mysql-connector-java diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java index dd07a9f..6fac3de 100644 --- a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java +++ b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java @@ -99,7 +99,7 @@ public ResponseEntity> findAllUsers() return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(allUsers); } - @DeleteMapping("/deleteUserById/{id}") + @DeleteMapping("/deleteUser/{id}") public void deleteUser(@PathVariable int id) { this.userService.deleteUserById(id); diff --git a/src/main/java/com/ausy_technologies/demospring/Repository/RoleRepository.java b/src/main/java/com/ausy_technologies/demospring/Repository/RoleRepository.java index 6c6715d..98571b5 100644 --- a/src/main/java/com/ausy_technologies/demospring/Repository/RoleRepository.java +++ b/src/main/java/com/ausy_technologies/demospring/Repository/RoleRepository.java @@ -6,7 +6,6 @@ import org.springframework.stereotype.Repository; import java.util.List; -import java.util.Optional; @Repository @@ -15,8 +14,8 @@ public interface RoleRepository extends JpaRepository { @Override List findAll(); - @Override - Optional findById(Integer integer); +// @Override +// Optional findById(Integer integer); diff --git a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java index b82e174..9e129fa 100644 --- a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java +++ b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java @@ -130,9 +130,9 @@ public User updateUser2(int id, List roleList){ public Role updateRole(int id, String name){ Role modifiedRole = null; - try{ modifiedRole = roleRepository.findById(id).get(); + modifiedRole.setName(name); roleRepository.save(modifiedRole); }catch (RuntimeException e){ throw new ErrorResponse(e,"Role not found !",404); From 51e7558bc4f7e1ce87129d4cb6deea8b8e3bd8be Mon Sep 17 00:00:00 2001 From: bintescu <41958601+bintescu@users.noreply.github.com> Date: Fri, 28 Aug 2020 09:28:00 +0300 Subject: [PATCH 08/10] Better Exceptions Handling --- pom.xml | 10 +++ .../demospring/Exceptions/ApiError.java | 80 +++++++++++++++++++ .../demospring/Exceptions/ApiSubError.java | 4 + .../Exceptions/ApiValidationError.java | 21 +++++ .../Exceptions/RestExceptionHandler.java | 37 +++++++++ .../UserController.java | 16 ++-- .../demospring/Service/UserService.java | 4 +- 7 files changed, 164 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/ausy_technologies/demospring/Exceptions/ApiError.java create mode 100644 src/main/java/com/ausy_technologies/demospring/Exceptions/ApiSubError.java create mode 100644 src/main/java/com/ausy_technologies/demospring/Exceptions/ApiValidationError.java create mode 100644 src/main/java/com/ausy_technologies/demospring/Exceptions/RestExceptionHandler.java rename src/main/java/com/ausy_technologies/demospring/{Controller => Exceptions}/UserController.java (93%) diff --git a/pom.xml b/pom.xml index 902d9a7..060a6ac 100644 --- a/pom.xml +++ b/pom.xml @@ -32,6 +32,16 @@ com.fasterxml.jackson.datatype jackson-datatype-jsr310 + + org.springframework.boot + spring-boot-devtools + runtime + + + org.projectlombok + lombok + true + mysql mysql-connector-java diff --git a/src/main/java/com/ausy_technologies/demospring/Exceptions/ApiError.java b/src/main/java/com/ausy_technologies/demospring/Exceptions/ApiError.java new file mode 100644 index 0000000..901c6c9 --- /dev/null +++ b/src/main/java/com/ausy_technologies/demospring/Exceptions/ApiError.java @@ -0,0 +1,80 @@ +package com.ausy_technologies.demospring.Exceptions; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.http.HttpStatus; + +import java.time.LocalDateTime; +import java.util.List; + +public class ApiError { + private HttpStatus status; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss") + private LocalDateTime timestamp; + private String message; + private String debugMessage; + private List subErrors; + + private ApiError() { + timestamp = LocalDateTime.now(); + } + + ApiError(HttpStatus status) { + this(); + this.status = status; + } + + ApiError(HttpStatus status, Throwable ex) { + this(); + this.status = status; + this.message = "Unexpected error"; + this.debugMessage = ex.getLocalizedMessage(); + } + + ApiError(HttpStatus status, String message, Throwable ex) { + this(); + this.status = status; + this.message = message; + this.debugMessage = ex.getLocalizedMessage(); + } + + public HttpStatus getStatus() { + return status; + } + + public void setStatus(HttpStatus status) { + this.status = status; + } + + public void setTimestamp(LocalDateTime timestamp) { + this.timestamp = timestamp; + } + + public void setMessage(String message) { + this.message = message; + } + + public void setDebugMessage(String debugMessage) { + this.debugMessage = debugMessage; + } + + public void setSubErrors(List subErrors) { + this.subErrors = subErrors; + } + + public LocalDateTime getTimestamp() { + return timestamp; + } + + public String getMessage() { + return message; + } + + public String getDebugMessage() { + return debugMessage; + } + + public List getSubErrors() { + return subErrors; + } +} + diff --git a/src/main/java/com/ausy_technologies/demospring/Exceptions/ApiSubError.java b/src/main/java/com/ausy_technologies/demospring/Exceptions/ApiSubError.java new file mode 100644 index 0000000..94a49f8 --- /dev/null +++ b/src/main/java/com/ausy_technologies/demospring/Exceptions/ApiSubError.java @@ -0,0 +1,4 @@ +package com.ausy_technologies.demospring.Exceptions; + +public abstract class ApiSubError { +} diff --git a/src/main/java/com/ausy_technologies/demospring/Exceptions/ApiValidationError.java b/src/main/java/com/ausy_technologies/demospring/Exceptions/ApiValidationError.java new file mode 100644 index 0000000..2e10464 --- /dev/null +++ b/src/main/java/com/ausy_technologies/demospring/Exceptions/ApiValidationError.java @@ -0,0 +1,21 @@ +package com.ausy_technologies.demospring.Exceptions; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@EqualsAndHashCode(callSuper = false) +@AllArgsConstructor +public class ApiValidationError extends ApiSubError { + private String object; + private String field; + private Object rejectedValue; + private String message; + + ApiValidationError(String object, String message) { + this.object = object; + this.message = message; + } +} diff --git a/src/main/java/com/ausy_technologies/demospring/Exceptions/RestExceptionHandler.java b/src/main/java/com/ausy_technologies/demospring/Exceptions/RestExceptionHandler.java new file mode 100644 index 0000000..be29526 --- /dev/null +++ b/src/main/java/com/ausy_technologies/demospring/Exceptions/RestExceptionHandler.java @@ -0,0 +1,37 @@ +package com.ausy_technologies.demospring.Exceptions; + +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.context.request.WebRequest; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; + +import javax.persistence.EntityNotFoundException; + +@Order(Ordered.HIGHEST_PRECEDENCE) +@ControllerAdvice +public class RestExceptionHandler extends ResponseEntityExceptionHandler { + @Override + protected ResponseEntity handleHttpMessageNotReadable(HttpMessageNotReadableException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { + String error = "Malformed JSON request"; + return buildResponseEntity(new ApiError(HttpStatus.BAD_REQUEST, error, ex)); + } + + private ResponseEntity buildResponseEntity(ApiError apiError) { + return new ResponseEntity<>(apiError, apiError.getStatus()); + } + + @ExceptionHandler(EntityNotFoundException.class) + protected ResponseEntity handleEntityNotFound( + EntityNotFoundException ex) { + ApiError apiError = new ApiError(HttpStatus.NOT_FOUND); + apiError.setMessage(ex.getMessage()); + apiError.setDebugMessage(ex.getLocalizedMessage()); + return buildResponseEntity(apiError); + } +} diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java b/src/main/java/com/ausy_technologies/demospring/Exceptions/UserController.java similarity index 93% rename from src/main/java/com/ausy_technologies/demospring/Controller/UserController.java rename to src/main/java/com/ausy_technologies/demospring/Exceptions/UserController.java index 6fac3de..1423313 100644 --- a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java +++ b/src/main/java/com/ausy_technologies/demospring/Exceptions/UserController.java @@ -1,5 +1,6 @@ -package com.ausy_technologies.demospring.Controller; +package com.ausy_technologies.demospring.Exceptions; +import com.ausy_technologies.demospring.Controller.ErrorResponse; import com.ausy_technologies.demospring.Model.DAO.Role; import com.ausy_technologies.demospring.Model.DAO.User; import com.ausy_technologies.demospring.Service.UserService; @@ -162,12 +163,13 @@ public ResponseEntity findUserById(@PathVariable int id){ User searchedUser = null ; HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Response","getuser"); - try{ - searchedUser = userService.findUserById(id); - }catch (ErrorResponse e){ - e.printStackTrace(); - return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); - } +// try{ +// searchedUser = userService.findUserById(id); +// }catch (ErrorResponse e){ +// e.printStackTrace(); +// return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); +// } + searchedUser = userService.findUserById(id); return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(searchedUser); } diff --git a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java index 9e129fa..0d724b2 100644 --- a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java +++ b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java @@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.persistence.EntityNotFoundException; import java.util.ArrayList; import java.util.List; @@ -82,7 +83,8 @@ public List findAllRoles() public User findUserById(int id){ User user = this.userRepository.findById(id); if(user == null){ - throw new ErrorResponse("User not found !",404); + //throw new ErrorResponse("User not found !",404); + throw new EntityNotFoundException("User not found !"); } return user; } From 87b952719a21189e90457c676b5bd5df2a7bde6e Mon Sep 17 00:00:00 2001 From: bintescu <41958601+bintescu@users.noreply.github.com> Date: Fri, 28 Aug 2020 09:32:40 +0300 Subject: [PATCH 09/10] Refactor commit --- .../UserController.java | 16 ++++++++-------- .../ErrorResponse.java | 2 +- .../demospring/Service/UserService.java | 7 +++---- 3 files changed, 12 insertions(+), 13 deletions(-) rename src/main/java/com/ausy_technologies/demospring/{Exceptions => Controller}/UserController.java (94%) rename src/main/java/com/ausy_technologies/demospring/{Controller => Exceptions}/ErrorResponse.java (92%) diff --git a/src/main/java/com/ausy_technologies/demospring/Exceptions/UserController.java b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java similarity index 94% rename from src/main/java/com/ausy_technologies/demospring/Exceptions/UserController.java rename to src/main/java/com/ausy_technologies/demospring/Controller/UserController.java index 1423313..613d854 100644 --- a/src/main/java/com/ausy_technologies/demospring/Exceptions/UserController.java +++ b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java @@ -1,6 +1,6 @@ -package com.ausy_technologies.demospring.Exceptions; +package com.ausy_technologies.demospring.Controller; -import com.ausy_technologies.demospring.Controller.ErrorResponse; +import com.ausy_technologies.demospring.Exceptions.ErrorResponse; import com.ausy_technologies.demospring.Model.DAO.Role; import com.ausy_technologies.demospring.Model.DAO.User; import com.ausy_technologies.demospring.Service.UserService; @@ -163,12 +163,12 @@ public ResponseEntity findUserById(@PathVariable int id){ User searchedUser = null ; HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Response","getuser"); -// try{ -// searchedUser = userService.findUserById(id); -// }catch (ErrorResponse e){ -// e.printStackTrace(); -// return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); -// } + try{ + searchedUser = userService.findUserById(id); + }catch (ErrorResponse e){ + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); + } searchedUser = userService.findUserById(id); return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(searchedUser); } diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/ErrorResponse.java b/src/main/java/com/ausy_technologies/demospring/Exceptions/ErrorResponse.java similarity index 92% rename from src/main/java/com/ausy_technologies/demospring/Controller/ErrorResponse.java rename to src/main/java/com/ausy_technologies/demospring/Exceptions/ErrorResponse.java index 91d731c..05b4017 100644 --- a/src/main/java/com/ausy_technologies/demospring/Controller/ErrorResponse.java +++ b/src/main/java/com/ausy_technologies/demospring/Exceptions/ErrorResponse.java @@ -1,4 +1,4 @@ -package com.ausy_technologies.demospring.Controller; +package com.ausy_technologies.demospring.Exceptions; public class ErrorResponse extends RuntimeException { diff --git a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java index 0d724b2..0e4d69b 100644 --- a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java +++ b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java @@ -1,6 +1,6 @@ package com.ausy_technologies.demospring.Service; -import com.ausy_technologies.demospring.Controller.ErrorResponse; +import com.ausy_technologies.demospring.Exceptions.ErrorResponse; import com.ausy_technologies.demospring.Model.DAO.Role; import com.ausy_technologies.demospring.Model.DAO.User; import com.ausy_technologies.demospring.Repository.RoleRepository; @@ -8,7 +8,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import javax.persistence.EntityNotFoundException; import java.util.ArrayList; import java.util.List; @@ -83,8 +82,8 @@ public List findAllRoles() public User findUserById(int id){ User user = this.userRepository.findById(id); if(user == null){ - //throw new ErrorResponse("User not found !",404); - throw new EntityNotFoundException("User not found !"); + throw new ErrorResponse("User not found !",404); + } return user; } From 91372bd6e877930c8003fa03600f720bd43bd245 Mon Sep 17 00:00:00 2001 From: bintescu <41958601+bintescu@users.noreply.github.com> Date: Fri, 28 Aug 2020 11:08:43 +0300 Subject: [PATCH 10/10] StackTrace only in DebugMode --- fileLogger | 0 fileLogger.1 | 0 fileLogger.1.lck | 0 fileLogger.lck | 0 .../demospring/Controller/UserController.java | 13 ++++---- .../demospring/DemospringApplication.java | 9 ++++-- .../demospring/Exceptions/ErrorResponse.java | 32 +++++++++++++++++++ .../demospring/Service/UserService.java | 8 +++-- 8 files changed, 49 insertions(+), 13 deletions(-) create mode 100644 fileLogger create mode 100644 fileLogger.1 create mode 100644 fileLogger.1.lck create mode 100644 fileLogger.lck diff --git a/fileLogger b/fileLogger new file mode 100644 index 0000000..e69de29 diff --git a/fileLogger.1 b/fileLogger.1 new file mode 100644 index 0000000..e69de29 diff --git a/fileLogger.1.lck b/fileLogger.1.lck new file mode 100644 index 0000000..e69de29 diff --git a/fileLogger.lck b/fileLogger.lck new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java index 613d854..6d69edc 100644 --- a/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java +++ b/src/main/java/com/ausy_technologies/demospring/Controller/UserController.java @@ -59,7 +59,7 @@ public ResponseEntity saveUser3(@RequestBody User user , @PathVariable Lis return ResponseEntity.status(HttpStatus.CREATED).headers(httpHeaders).body(userAdded); } - @GetMapping("/findRoleBy/{id}") + @GetMapping("/getRole/{id}") public ResponseEntity findRoleById(@PathVariable int id) { HttpHeaders httpHeaders = new HttpHeaders(); @@ -68,7 +68,7 @@ public ResponseEntity findRoleById(@PathVariable int id) try { roleSearched = this.userService.findRoleById(id); }catch (ErrorResponse e){ - e.printStackTrace(); + ErrorResponse.LogError(e); return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); } @@ -116,7 +116,7 @@ public ResponseEntity updateUser(@RequestParam int id, @RequestBody User u updatedUser = userService.updateUser(id,user); }catch (ErrorResponse errorResponse){ - errorResponse.printStackTrace(); + ErrorResponse.LogError(errorResponse); return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); } @@ -131,7 +131,7 @@ public ResponseEntity updateUser2(@RequestParam int id , @PathVariable Lis try{ updatedUser = userService.updateUser2(id,roleList); }catch (ErrorResponse e){ - e.printStackTrace(); + ErrorResponse.LogError(e); return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); } @@ -146,7 +146,7 @@ public ResponseEntity updateRole(@PathVariable String name, @RequestParam try { updatedRole = userService.updateRole(id,name); }catch (ErrorResponse e){ - e.printStackTrace(); + ErrorResponse.LogError(e); return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); } @@ -166,10 +166,9 @@ public ResponseEntity findUserById(@PathVariable int id){ try{ searchedUser = userService.findUserById(id); }catch (ErrorResponse e){ - e.printStackTrace(); + ErrorResponse.LogError(e); return ResponseEntity.status(HttpStatus.NOT_FOUND).headers(httpHeaders).body(null); } - searchedUser = userService.findUserById(id); return ResponseEntity.status(HttpStatus.FOUND).headers(httpHeaders).body(searchedUser); } diff --git a/src/main/java/com/ausy_technologies/demospring/DemospringApplication.java b/src/main/java/com/ausy_technologies/demospring/DemospringApplication.java index 64b6d8a..0ee1d00 100644 --- a/src/main/java/com/ausy_technologies/demospring/DemospringApplication.java +++ b/src/main/java/com/ausy_technologies/demospring/DemospringApplication.java @@ -1,16 +1,19 @@ package com.ausy_technologies.demospring; +import com.ausy_technologies.demospring.Exceptions.ErrorResponse; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import java.util.logging.Logger; + @SpringBootApplication public class DemospringApplication { - + public static final Logger lgr = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); public static void main(String[] args) { - + ErrorResponse.setupLogger(); SpringApplication.run(DemospringApplication.class, args); - } + } diff --git a/src/main/java/com/ausy_technologies/demospring/Exceptions/ErrorResponse.java b/src/main/java/com/ausy_technologies/demospring/Exceptions/ErrorResponse.java index 05b4017..8fd021c 100644 --- a/src/main/java/com/ausy_technologies/demospring/Exceptions/ErrorResponse.java +++ b/src/main/java/com/ausy_technologies/demospring/Exceptions/ErrorResponse.java @@ -1,6 +1,14 @@ package com.ausy_technologies.demospring.Exceptions; +import java.io.IOException; +import java.util.logging.FileHandler; +import java.util.logging.Level; +import java.util.logging.Logger; + public class ErrorResponse extends RuntimeException { + public static final Logger lgr = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); + private static boolean isDebug = java.lang.management.ManagementFactory.getRuntimeMXBean(). + getInputArguments().toString().contains("jdwp"); private String errorMessage; private int errorId; @@ -19,6 +27,30 @@ public ErrorResponse(Throwable cause, String errorMessage, int errorId) { this.errorMessage = errorMessage; this.errorId = errorId; } + public static void setupLogger() { + lgr.setLevel(Level.FINE); + + try { + + FileHandler fh = new FileHandler("fileLogger"); + lgr.addHandler(fh); + fh.setLevel(Level.FINE); + } + catch (IOException e){ + lgr.log(Level.SEVERE,"The logger file was not create"); + } + } + + + public static void LogError(ErrorResponse e){ + if(isDebug) { + e.printStackTrace(); + } + else { + lgr.log(Level.SEVERE,e.getErrorMessage()); + } + + } public String getErrorMessage() { return errorMessage; diff --git a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java index 0e4d69b..28e1baa 100644 --- a/src/main/java/com/ausy_technologies/demospring/Service/UserService.java +++ b/src/main/java/com/ausy_technologies/demospring/Service/UserService.java @@ -66,11 +66,13 @@ public User saveUser3( User user ,List roleList) public Role findRoleById(int id) { - Role role = roleRepository.findById(id).get(); - if(role == null){ + + if (!roleRepository.findById(id).isPresent()) { throw new ErrorResponse("Role not found !",404); } - return role; + else { + return roleRepository.findById(id).get(); + } }