44import com .gmail .merikbest2015 .springbootreactjscrudapp .model .Employee ;
55import com .gmail .merikbest2015 .springbootreactjscrudapp .service .EmployeeService ;
66import org .springframework .beans .factory .annotation .Autowired ;
7+ import org .springframework .http .HttpStatus ;
78import org .springframework .http .ResponseEntity ;
9+ import org .springframework .validation .BindingResult ;
810import org .springframework .web .bind .annotation .*;
911
12+ import javax .validation .Valid ;
1013import java .util .HashMap ;
1114import java .util .List ;
1215import java .util .Map ;
@@ -24,37 +27,57 @@ public EmployeeController(EmployeeService employeeService) {
2427 }
2528
2629 @ GetMapping ("/employees" )
27- public List <Employee > getAllEmployees () {
28- return employeeService .findAll ();
30+ public ResponseEntity <?> getAllEmployees () {
31+ List <Employee > employees = employeeService .findAll ();
32+
33+ return new ResponseEntity <>(employees , HttpStatus .OK );
2934 }
3035
3136 @ PostMapping ("/employees" )
32- public Employee createEmployee (@ RequestBody Employee employee ) {
33- return employeeService .save (employee );
37+ public ResponseEntity <?> createEmployee (@ RequestBody @ Valid Employee employee , BindingResult bindingResult ) {
38+ if (bindingResult .hasErrors ()) {
39+ Map <String , String > errorsMap = ControllerUtils .getErrors (bindingResult );
40+
41+ return new ResponseEntity <>(errorsMap , HttpStatus .BAD_REQUEST );
42+ } else {
43+ Employee savedEmployee = employeeService .save (employee );
44+
45+ return new ResponseEntity <>(savedEmployee , HttpStatus .CREATED );
46+ }
3447 }
3548
3649 @ GetMapping ("/employees/{id}" )
37- public ResponseEntity <Employee > getEmployeeById (@ PathVariable Long id ) {
50+ public ResponseEntity <? > getEmployeeById (@ PathVariable Long id ) {
3851 Employee employee = employeeService .findById (id )
3952 .orElseThrow (() -> new ResourceNotFoundException ("Employee not exist with id: " + id ));
4053
41- return ResponseEntity . ok (employee );
54+ return new ResponseEntity <> (employee , HttpStatus . OK );
4255 }
4356
4457 @ PutMapping ("/employees/{id}" )
45- public ResponseEntity <Employee > updateEmployee (@ PathVariable Long id , @ RequestBody Employee employeeDetails ) {
46- Employee employee = employeeService .findById (id )
47- .orElseThrow (() -> new ResourceNotFoundException ("Employee not exist with id: " + id ));
48-
49- employee .setFirstName (employeeDetails .getFirstName ());
50- employee .setLastName (employeeDetails .getLastName ());
51- employee .setCity (employeeDetails .getCity ());
52- employee .setAddress (employeeDetails .getAddress ());
53- employee .setTelephone (employeeDetails .getTelephone ());
54-
55- Employee updatedEmployee = employeeService .save (employee );
56-
57- return ResponseEntity .ok (updatedEmployee );
58+ public ResponseEntity <?> updateEmployee (
59+ @ PathVariable Long id ,
60+ @ RequestBody @ Valid Employee employeeDetails ,
61+ BindingResult bindingResult
62+ ) {
63+ if (bindingResult .hasErrors ()) {
64+ Map <String , String > errorsMap = ControllerUtils .getErrors (bindingResult );
65+
66+ return new ResponseEntity <>(errorsMap , HttpStatus .BAD_REQUEST );
67+ } else {
68+ Employee employee = employeeService .findById (id )
69+ .orElseThrow (() -> new ResourceNotFoundException ("Employee not exist with id: " + id ));
70+
71+ employee .setFirstName (employeeDetails .getFirstName ());
72+ employee .setLastName (employeeDetails .getLastName ());
73+ employee .setCity (employeeDetails .getCity ());
74+ employee .setAddress (employeeDetails .getAddress ());
75+ employee .setTelephone (employeeDetails .getTelephone ());
76+
77+ employeeService .save (employee );
78+
79+ return new ResponseEntity <>(HttpStatus .OK );
80+ }
5881 }
5982
6083 @ DeleteMapping ("/employees/{id}" )
@@ -66,6 +89,7 @@ public ResponseEntity<Map<String, Boolean>> deleteEmployee(@PathVariable Long id
6689 Map <String , Boolean > response = new HashMap <>();
6790 response .put ("deleted" , Boolean .TRUE );
6891
69- return ResponseEntity .ok (response );
92+ return new ResponseEntity <>(response , HttpStatus .NO_CONTENT );
93+ // return ResponseEntity.ok(response);
7094 }
7195}
0 commit comments