WIP
[demos/kafka/outbox] / src / main / java / de / juplo / boot / data / jdbc / UserController.java
index 1ff11d8..0b2a17a 100644 (file)
@@ -27,17 +27,20 @@ public class UserController {
 
 
     @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();
     }
@@ -52,6 +55,18 @@ public class UserController {
         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());