package netgloo.controllers; import netgloo.models.User; import netgloo.models.UserDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; /** * A class to test interactions with the MySQL database using the UserDao class. * * @author netgloo */ @Controller public class UserController { // ------------------------ // PUBLIC METHODS // ------------------------ /** * /create --> Create a new user and save it in the database. * * @param email User's email * @param name User's name * @return A string describing if the user is succesfully created or not. */ @RequestMapping("/create") @ResponseBody public String create(String email, String name) { User user = null; try { user = new User(email, name); userDao.save(user); } catch (Exception ex) { return "Error creating the user: " + ex.toString(); } return "User succesfully created! (id = " + user.getId() + ")"; } /** * /delete --> Delete the user having the passed id. * * @param id The id of the user to delete * @return A string describing if the user is succesfully deleted or not. */ @RequestMapping("/delete") @ResponseBody public String delete(long id) { try { User user = new User(id); userDao.delete(user); } catch (Exception ex) { return "Error deleting the user: " + ex.toString(); } return "User succesfully deleted!"; } /** * /get-by-email --> Return the id for the user having the passed email. * * @param email The email to search in the database. * @return The user id or a message error if the user is not found. */ @RequestMapping("/get-by-email") @ResponseBody public String getByEmail(String email) { String userId; try { User user = userDao.findByEmail(email); userId = String.valueOf(user.getId()); } catch (Exception ex) { return "User not found"; } return "The user id is: " + userId; } /** * /update --> Update the email and the name for the user in the database * having the passed id. * * @param id The id for the user to update. * @param email The new email. * @param name The new name. * @return A string describing if the user is succesfully updated or not. */ @RequestMapping("/update") @ResponseBody public String updateUser(long id, String email, String name) { try { User user = userDao.findOne(id); user.setEmail(email); user.setName(name); userDao.save(user); } catch (Exception ex) { return "Error updating the user: " + ex.toString(); } return "User succesfully updated!"; } // ------------------------ // PRIVATE FIELDS // ------------------------ @Autowired private UserDao userDao; } // class UserController