From: Kai Moritz Date: Sun, 12 Jul 2020 12:16:41 +0000 (+0200) Subject: WIP X-Git-Tag: wip-initial~12 X-Git-Url: https://juplo.de/gitweb/?a=commitdiff_plain;ds=sidebyside;h=3c8b47c86249b52fcdb9275c40d161fb3e6bcc98;p=demos%2Fkafka%2Foutbox WIP --- diff --git a/pom.xml b/pom.xml index a69fe6c..87706cd 100644 --- a/pom.xml +++ b/pom.xml @@ -23,6 +23,10 @@ org.springframework.boot spring-boot-starter-web + + org.springframework.boot + spring-boot-starter-actuator + org.springframework.boot spring-boot-starter-data-jdbc diff --git a/src/main/java/de/trion/kafka/outbox/OutboxController.java b/src/main/java/de/trion/kafka/outbox/OutboxController.java deleted file mode 100644 index 86ff44f..0000000 --- a/src/main/java/de/trion/kafka/outbox/OutboxController.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.trion.kafka.outbox; - -import org.slf4j.Logger; -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; - -import java.time.LocalDateTime; - -@RestController -@Transactional -@RequestMapping("/users") -public class OutboxController { - - private static final Logger LOG = LoggerFactory.getLogger(OutboxController.class); - - - private final UserRepository repository; - - - public OutboxController(UserRepository repository) { - this.repository = repository; - } - - - @PostMapping - public ResponseEntity getVorgang( - ServletUriComponentsBuilder builder, - @RequestBody String username) { - 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 - .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(); - } -} diff --git a/src/main/java/de/trion/kafka/outbox/UserController.java b/src/main/java/de/trion/kafka/outbox/UserController.java new file mode 100644 index 0000000..163e254 --- /dev/null +++ b/src/main/java/de/trion/kafka/outbox/UserController.java @@ -0,0 +1,67 @@ +package de.trion.kafka.outbox; + +import org.slf4j.Logger; +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 java.time.LocalDateTime; + +@RestController +@Transactional +@RequestMapping("/users") +public class UserController { + + private static final Logger LOG = LoggerFactory.getLogger(UserController.class); + + + private final UserRepository repository; + + + public UserController(UserRepository repository) { + this.repository = repository; + } + + + @PostMapping + public ResponseEntity getVorgang( + ServletUriComponentsBuilder builder, + @RequestBody String username) { + String sanitizedUsername = UserController.sanitize(username); + User user = new User(sanitizedUsername, LocalDateTime.now(), false); + repository.save(user); + // TODO: Not-Unique Fehler auslösen + 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(UserController.sanitize(username)); + + if (user == null) + return ResponseEntity.notFound().build(); + + return ResponseEntity.ok(user); + } + + @GetMapping() + public ResponseEntity> getUsers() { + return ResponseEntity.ok(repository.findAll()); + } + + + private static String sanitize(String string) { + if (string == null) + return ""; + + return string.trim().toLowerCase(); + } +}