WIP
[demos/spring/data-jdbc] / src / main / java / de / trion / kafka / outbox / OutboxController.java
1 package de.trion.kafka.outbox;
2
3 import org.slf4j.Logger;
4 import org.slf4j.LoggerFactory;
5 import org.springframework.http.ResponseEntity;
6 import org.springframework.transaction.annotation.Transactional;
7 import org.springframework.web.bind.annotation.*;
8 import org.springframework.web.util.UriComponents;
9 import org.springframework.web.util.UriComponentsBuilder;
10
11 import java.time.LocalDateTime;
12
13 @RestController
14 @Transactional
15 @RequestMapping("/users")
16 public class OutboxController {
17
18     private static final Logger LOG = LoggerFactory.getLogger(OutboxController.class);
19
20
21     private final UserRepository repository;
22
23
24     public OutboxController(UserRepository repository) {
25         this.repository = repository;
26     }
27
28
29     @PostMapping()
30     public ResponseEntity<Void> getVorgang(
31             UriComponentsBuilder builder,
32             @RequestBody String username) {
33         User user = new User(username, LocalDateTime.now(), false);
34         repository.save(user);
35         // TODO: Not-Unique Fehler auslösen
36         UriComponents uri = builder.path("/{username}").buildAndExpand(username);
37         return ResponseEntity.created(uri.toUri()).build();
38     }
39 }