--- /dev/null
+package de.juplo.boot.data.jdbc;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Application {
+
+ private final static Logger LOG = LoggerFactory.getLogger(Application.class);
+
+
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+}
--- /dev/null
+package de.juplo.boot.data.jdbc;
+
+import lombok.*;
+import org.springframework.data.annotation.Id;
+
+import java.time.LocalDateTime;
+
+public class User {
+ @Id
+ Long id;
+ @Getter
+ @Setter
+ String username;
+ @Getter
+ @Setter
+ LocalDateTime created;
+ @Getter
+ @Setter
+ boolean loggedIn;
+
+ public User(String username, LocalDateTime created, boolean loggedIn) {
+ this.username = username;
+ this.created = created;
+ this.loggedIn = loggedIn;
+ }
+}
--- /dev/null
+package de.juplo.boot.data.jdbc;
+
+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<Void> 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<User> 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<Iterable<User>> getUsers() {
+ return ResponseEntity.ok(repository.findAll());
+ }
+
+
+ private static String sanitize(String string) {
+ if (string == null)
+ return "";
+
+ return string.trim().toLowerCase();
+ }
+}
--- /dev/null
+package de.juplo.boot.data.jdbc;
+
+public class UserEvent {
+ public enum Type { CREATED, LOGIN, LOGOUT, DELETED }
+
+ Long id;
+ Type type;
+ String user;
+}
--- /dev/null
+package de.juplo.boot.data.jdbc;
+
+import org.springframework.data.jdbc.repository.query.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.query.Param;
+
+public interface UserRepository extends CrudRepository<User, Long> {
+ @Query("select * from User u where u.username = :username")
+ User findByUsername(@Param("username") String username);
+}
+++ /dev/null
-package de.trion.kafka.outbox;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class Application {
-
- private final static Logger LOG = LoggerFactory.getLogger(Application.class);
-
-
- public static void main(String[] args) {
- SpringApplication.run(Application.class, args);
- }
-}
+++ /dev/null
-package de.trion.kafka.outbox;
-
-import lombok.*;
-import org.springframework.data.annotation.Id;
-
-import java.time.LocalDateTime;
-
-public class User {
- @Id
- Long id;
- @Getter
- @Setter
- String username;
- @Getter
- @Setter
- LocalDateTime created;
- @Getter
- @Setter
- boolean loggedIn;
-
- public User(String username, LocalDateTime created, boolean loggedIn) {
- this.username = username;
- this.created = created;
- this.loggedIn = loggedIn;
- }
-}
+++ /dev/null
-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<Void> 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<User> 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<Iterable<User>> getUsers() {
- return ResponseEntity.ok(repository.findAll());
- }
-
-
- private static String sanitize(String string) {
- if (string == null)
- return "";
-
- return string.trim().toLowerCase();
- }
-}
+++ /dev/null
-package de.trion.kafka.outbox;
-
-public class UserEvent {
- public enum Type { CREATED, LOGIN, LOGOUT, DELETED }
-
- Long id;
- Type type;
- String user;
-}
+++ /dev/null
-package de.trion.kafka.outbox;
-
-import org.springframework.data.jdbc.repository.query.Query;
-import org.springframework.data.repository.CrudRepository;
-import org.springframework.data.repository.query.Param;
-import org.springframework.jdbc.core.JdbcTemplate;
-
-public interface UserRepository extends CrudRepository<User, Long> {
- @Query("select * from User u where u.username = :username")
- User findByUsername(@Param("username") String username);
-}
--- /dev/null
+package de.juplo.boot.data.jdbc;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
+++ /dev/null
-package de.trion.kafka.outbox;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class ApplicationTests {
-
- @Test
- public void contextLoads() {
- }
-
-}