Files
getting-started/pact/pact-spring-provider/src/main/java/io/reflectoring/UserController.java
2018-03-18 22:44:54 +01:00

42 lines
1.1 KiB
Java

package io.reflectoring;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@RestController
public class UserController {
private UserRepository userRepository;
@Autowired
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@PostMapping(path = "/user-service/users")
public ResponseEntity<IdObject> createUser(@RequestBody @Valid User user) {
User savedUser = this.userRepository.save(user);
return ResponseEntity
.status(201)
.body(new IdObject(savedUser.getId()));
}
@PutMapping(path = "/user-service/users/{id}")
public ResponseEntity<User> updateUser(@RequestBody @Valid User user, @PathVariable long id) {
User userFromDb = userRepository.findOne(id);
userFromDb.updateFrom(user);
userFromDb = userRepository.save(userFromDb);
return ResponseEntity.ok(userFromDb);
}
@GetMapping(path = "/user-service/users/{id}")
public ResponseEntity<User> getUser(@PathVariable("id") Long id) {
return ResponseEntity.ok(userRepository.findOne(id));
}
}