package com.example.accessingdatamysql; import org.apache.coyote.Response; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import java.util.Map; import java.util.Optional; @CrossOrigin @RestController // This means that this class is a Controller @RequestMapping(path="/user") // This means URL's start with /demo (after Application path) public class MainController { @Autowired // This means to get the bean called userRepository // Which is auto-generated by Spring, we will use it to handle the data private UserRepository userRepository; @PostMapping(path = "/add") // Map ONLY POST Requests @ResponseBody public User addJsonUser(@RequestBody User usr) { // @ResponseBody means the returned String is the response, not a view name // @RequestParam means it is a parameter from the GET or POST request userRepository.save(usr); return usr; } @PutMapping(path = "/update") @ResponseBody public User updateUser(@RequestBody User usr) { userRepository.save(usr); return usr; } @PutMapping(path = "/changepass") @ResponseBody public User updateUser(@RequestBody Map<String, String> json) { if (json.get("email") != null) { Optional<User> user = userRepository.findById(json.get("email")); if (user.isPresent()) { User usr = user.get(); usr.setPassword(json.get("password")); userRepository.save(usr); return usr; } return null; } return null; } @GetMapping(path="/all") public @ResponseBody Iterable<User> getAllUsers() { // This returns a JSON or XML with the users return userRepository.findAll(); } @GetMapping(path = "/user") public @ResponseBody Optional<User> getUser(@RequestBody Map<String, String> json) { String email = json.get("email"); return userRepository.findById(email); } @DeleteMapping(path = "/delete") public @ResponseBody User deleteUser(@RequestBody Map<String, String> json) { User found = null; String email = json.get("email"); Optional<User> optionalUser = userRepository.findById(email); if (optionalUser.isPresent()) { System.out.println("in if statement"); found = optionalUser.get(); userRepository.deleteById(email); return found; } return null; } }