Untitled
unknown
plain_text
2 years ago
2.5 kB
18
Indexable
@RequestMapping(value= "/employee/{id}", method= RequestMethod.GET)
public Employee getEmployeeById(@PathVariable int id) throws Exception {
System.out.println(this.getClass().getSimpleName() + " - Get employee details by id is invoked.");
Optional<Employee> emp = service.getEmployeeById(id);
if(!emp.isPresent())
throw new Exception("Could not find employee with id- " + id);
return emp.get();
}
@RequestMapping(value= "/employee/add", method= RequestMethod.POST)
public Employee createEmployee(@RequestBody Employee newemp) {
System.out.println(this.getClass().getSimpleName() + " - Create new employee method is invoked.");
return service.addNewEmployee(newemp);
}
@RequestMapping(value= "/employee/update/{id}", method= RequestMethod.PUT)
public Employee updateEmployee(@RequestBody Employee updemp, @PathVariable int id) throws Exception {
System.out.println(this.getClass().getSimpleName() + " - Update employee details by id is invoked.");
Optional<Employee> emp = service.getEmployeeById(id);
if (!emp.isPresent())
throw new Exception("Could not find employee with id- " + id);
/* IMPORTANT - To prevent the overiding of the existing value of the variables in the database,
* if that variable is not coming in the @RequestBody annotation object. */
if(updemp.getName() == null || updemp.getName().isEmpty())
updemp.setName(emp.get().getName());
if(updemp.getDepartment() == null || updemp.getDepartment().isEmpty())
updemp.setDepartment(emp.get().getDepartment());
if(updemp.getSalary() == 0)
updemp.setSalary(emp.get().getSalary());
// Required for the "where" clause in the sql query template.
updemp.setId(id);
return service.updateEmployee(updemp);
}
@RequestMapping(value= "/employee/delete/{id}", method= RequestMethod.DELETE)
public void deleteEmployeeById(@PathVariable int id) throws Exception {
System.out.println(this.getClass().getSimpleName() + " - Delete employee by id is invoked.");
Optional<Employee> emp = service.getEmployeeById(id);
if(!emp.isPresent())
throw new Exception("Could not find employee with id- " + id);
service.deleteEmployeeById(id);
}
@RequestMapping(value= "/employee/deleteall", method= RequestMethod.DELETE)
public void deleteAll() {
System.out.println(this.getClass().getSimpleName() + " - Delete all employees is invoked.");
service.deleteAllEmployees();
}Editor is loading...
Leave a Comment