package net.pechorina.kontempl.rest; import net.pechorina.kontempl.data.User; import net.pechorina.kontempl.service.UserService; import net.pechorina.kontempl.view.forms.UserFormNew; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; @RestController @RequestMapping(value = "/api/users") public class UserAccountsResource { static final Logger logger = LoggerFactory.getLogger(UserAccountsResource.class); @Autowired private UserService userService; @Autowired private Environment env; @RequestMapping(method = RequestMethod.GET) public List<User> getUsers() { return userService.findUsers(); } @RequestMapping(method = RequestMethod.GET, value = "/{id}") public User getById(@PathVariable("id") Integer id) { return userService.getUserByIdDetailed(id); } @RequestMapping(method = RequestMethod.DELETE, value = "/{id}") public void deleteById(@PathVariable("id") Integer id, HttpServletResponse response) { User u = userService.getUserById(id); userService.delete(u); response.setStatus(HttpServletResponse.SC_OK); } @RequestMapping(method = RequestMethod.POST) public void addUser(@RequestBody UserFormNew userform, HttpServletRequest request, HttpServletResponse response) { User u = new User(); u.setName(userform.getName()); u.setActive(true); u.setLocked(false); u.setRoles(userform.getRoles()); User newEntity = userService.saveNewUser(u, userform.getEmail(), userform.getPassword()); logger.info("USER ADDED: " + newEntity + " Src:" + request.getRemoteAddr()); response.setStatus(HttpServletResponse.SC_CREATED); } @RequestMapping(method = RequestMethod.PUT, value = "/{id}") public void save(@PathVariable("id") Integer id, @RequestBody User user, HttpServletRequest request, HttpServletResponse response) { User existingUser = userService.getUserById(id); existingUser.setActive(user.isActive()); existingUser.setLocked(user.isLocked()); existingUser.setName(user.getName()); existingUser.setRoles(user.getRoles()); User entity = userService.save(existingUser); logger.info("USER SAVED: " + entity + " Src:" + request.getRemoteAddr()); response.setStatus(HttpServletResponse.SC_OK); } }