1 package de.juplo.demos.consumer.adapter;
3 import de.juplo.demos.consumer.domain.User;
4 import de.juplo.demos.consumer.domain.UsersService;
5 import lombok.RequiredArgsConstructor;
6 import org.springframework.http.HttpStatus;
7 import org.springframework.http.ResponseEntity;
8 import org.springframework.web.client.RestTemplate;
10 import java.util.Optional;
11 import java.util.UUID;
14 @RequiredArgsConstructor
15 public class RemoteUsersServiceConsumer implements UsersService
17 private String uriTemplate;
18 private RestTemplate restTemplate;
22 public Optional<User> getUser(UUID id) {
23 ResponseEntity<UserDTO> response =
24 restTemplate.getForEntity(uriTemplate, UserDTO.class, id);
25 HttpStatus status = response.getStatusCode();
26 UserDTO dto = response.getBody();
27 switch (response.getStatusCode()) {
36 return Optional.empty();
38 throw new RuntimeException(status.toString());