@PostMapping
- public ResponseEntity<Void> getVorgang(
+ public ResponseEntity<Void> createUser(
ServletUriComponentsBuilder builder,
@RequestBody String username) {
String sanitizedUsername = UserController.sanitize(username);
User user = new User(sanitizedUsername, LocalDateTime.now(), false);
+
+ // Ein Fehler wegen doppeltem username verhindert das Speichern
repository.save(user);
- // TODO: Not-Unique Fehler auslösen
+ user = repository.findByUsername(sanitizedUsername);
+
UriComponents uri =
builder
.fromCurrentRequest()
- .path("{username}")
+ .pathSegment("{username}")
.buildAndExpand(sanitizedUsername);
return ResponseEntity.created(uri.toUri()).build();
}
return ResponseEntity.ok(user);
}
+ @DeleteMapping("{username}")
+ public ResponseEntity<User> removeUser(@PathVariable String username) {
+ User user = repository.findByUsername(UserController.sanitize(username));
+
+ if (user == null)
+ return ResponseEntity.notFound().build();
+
+ repository.delete(user);
+
+ return ResponseEntity.ok(user);
+ }
+
@GetMapping()
public ResponseEntity<Iterable<User>> getUsers() {
return ResponseEntity.ok(repository.findAll());