package com.andersjbe.mongospringpractice.controller; import com.andersjbe.mongospringpractice.model.User; import com.andersjbe.mongospringpractice.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.crossstore.ChangeSetPersister; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/users") public class UserController { @Autowired UserService service; @GetMapping("") public List<User> getAllUsers() { return service.findAllUsers(); } @PostMapping("") public User postNewUser(@RequestBody User user) { return service.createUser(user); } @GetMapping("{id}") public User getUserById(@PathVariable("id") String id) throws ChangeSetPersister.NotFoundException { return service.findUserById(id) .orElseThrow(ChangeSetPersister.NotFoundException::new); } @PutMapping("{id}") public User putUserUpdate(@PathVariable("id") String id, @RequestBody User userUpdate) { return service.updateUserById(userUpdate, id); } @DeleteMapping("{id}") public User deleteUser(@PathVariable("id") String id) throws ChangeSetPersister.NotFoundException { User user = service.findUserById(id) .orElseThrow(ChangeSetPersister.NotFoundException::new); return service.deleteUser(user); } }