X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Ftrion%2Fkafka%2Foutbox%2FOutboxController.java;h=86ff44fa49733fffd003d07f01e5cdbde8b01cd1;hb=4079eda81d0c8f94f3b1ded78056b52256f0d519;hp=f1119f2edf83e2cedbf577db2b2961a42580903e;hpb=57f90dfdd0b944c0ee82fe20ebe554f1f874fe57;p=demos%2Fkafka%2Foutbox diff --git a/src/main/java/de/trion/kafka/outbox/OutboxController.java b/src/main/java/de/trion/kafka/outbox/OutboxController.java index f1119f2..86ff44f 100644 --- a/src/main/java/de/trion/kafka/outbox/OutboxController.java +++ b/src/main/java/de/trion/kafka/outbox/OutboxController.java @@ -5,6 +5,7 @@ import org.slf4j.LoggerFactory; import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; @@ -26,15 +27,36 @@ public class OutboxController { } - @PostMapping() + @PostMapping public ResponseEntity getVorgang( - UriComponentsBuilder builder, + ServletUriComponentsBuilder builder, @RequestBody String username) { - String cleaned = username.trim().toLowerCase(); - User user = new User(cleaned, LocalDateTime.now(), false); + String sanitizedUsername = OutboxController.sanitize(username); + User user = new User(sanitizedUsername, LocalDateTime.now(), false); repository.save(user); // TODO: Not-Unique Fehler auslösen - UriComponents uri = builder.path("{username}").buildAndExpand(cleaned); + UriComponents uri = + builder + .fromCurrentRequest() + .path("{username}") + .buildAndExpand(sanitizedUsername); return ResponseEntity.created(uri.toUri()).build(); } + + @GetMapping("{username}") + public ResponseEntity getUser(@PathVariable String username) { + User user = repository.findByUsername(OutboxController.sanitize(username)); + + if (user == null) + return ResponseEntity.notFound().build(); + + return ResponseEntity.ok(user); + } + + private static String sanitize(String string) { + if (string == null) + return ""; + + return string.trim().toLowerCase(); + } }