CRUD (sans auth) sur la ressource user

This commit is contained in:
guams 2024-09-24 09:46:51 +02:00
parent 189245ef42
commit d769bee503
3 changed files with 49 additions and 11 deletions

View File

@ -1,6 +1,7 @@
package com.guams.review.controller; package com.guams.review.controller;
import com.guams.review.modele.User; import com.guams.review.modele.User;
import com.guams.review.repository.UserRepository;
import com.guams.review.service.UserService; import com.guams.review.service.UserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
@ -14,31 +15,67 @@ import java.util.Optional;
@RestController @RestController
@RequestMapping(path = "api/users") @RequestMapping(path = "api/users")
public class UserController public class UserController {
{
private final UserService userService; private final UserService userService;
private final UserRepository userRepository;
@Autowired @Autowired
public UserController(UserService userService) { public UserController(UserService userService, UserRepository userRepository) {
this.userService = userService; this.userService = userService;
this.userRepository = userRepository;
} }
@GetMapping @GetMapping
public ResponseEntity<List<User>> getUsers() public ResponseEntity<List<User>> getUsers() {
{
List<User> users = userService.getUsers(); List<User> users = userService.getUsers();
return new ResponseEntity<>(users, new HttpHeaders(),HttpStatus.OK); return new ResponseEntity<>(users, new HttpHeaders(), HttpStatus.OK);
}; };
@GetMapping("/{user-id}")
public ResponseEntity<User> getUser(@PathVariable("user-id") Long id) {
Optional<User> exists = userRepository.findById(id);
if (exists.isPresent()) {
return new ResponseEntity<>(exists.get(), new HttpHeaders(), HttpStatus.OK);
}
return new ResponseEntity<>(null, new HttpHeaders(), HttpStatus.NOT_FOUND);
}
@PostMapping @PostMapping
public ResponseEntity<String> saveUser(@RequestParam User user) public ResponseEntity<String> saveUser(@RequestBody User user) {
{
userService.saveUser(user); userService.saveUser(user);
Optional<User> exists = userService.findById(user.getId()); Optional<User> exists = userService.findById(user.getId());
if (exists.isPresent()) if (exists.isPresent()) {
{
return new ResponseEntity<>("Created", new HttpHeaders(), HttpStatus.CREATED); return new ResponseEntity<>("Created", new HttpHeaders(), HttpStatus.CREATED);
} }
return new ResponseEntity<>("Error", new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR); return new ResponseEntity<>("Error", new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR);
} }
@PutMapping("/{user-id}")
public ResponseEntity<String> updateUser(@PathVariable("user-id") Long id, @RequestBody User user)
{
Optional<User> exists = userService.findById(id);
if (exists.isPresent()) {
User newUser = exists.get();
newUser.setLogin(user.getLogin());
newUser.setPassword(user.getPassword());
newUser.setPosts(user.getPosts());
userService.saveUser(newUser);
return new ResponseEntity<>("Updated", new HttpHeaders(), HttpStatus.OK);
}
return new ResponseEntity<>("User not found", new HttpHeaders(), HttpStatus.NOT_FOUND);
}
@DeleteMapping("{user-id}")
public ResponseEntity<String> deleteUser(@PathVariable("user-id") Long id)
{
Optional<User> exists = userService.findById(id);
if (exists.isPresent()) {
userRepository.delete(exists.get());
return new ResponseEntity<>("Deleted", new HttpHeaders(), HttpStatus.OK);
}
return new ResponseEntity<>("User not found", new HttpHeaders(), HttpStatus.NOT_FOUND);
}
} }

View File

@ -25,7 +25,7 @@ public class User {
@Column(name = "PASSWORD", nullable = false) @Column(name = "PASSWORD", nullable = false)
private String password; private String password;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) @OneToMany(mappedBy = "user")
private List<Post> posts; private List<Post> posts;

View File

@ -33,4 +33,5 @@ public class UserService
{ {
return userRepository.findById(id); return userRepository.findById(id);
} }
} }