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.stereotype.Service;
9 import org.springframework.web.client.RestTemplate;
11 import java.util.Optional;
15 @RequiredArgsConstructor
16 public class RemoteUsersServiceConsumer implements UsersService
18 private String uriTemplate;
19 private RestTemplate restTemplate;
23 public Optional<User> getUserByEmail(String email) {
24 ResponseEntity<UserDTO> response =
25 restTemplate.getForEntity(uriTemplate, UserDTO.class, email);
26 HttpStatus status = response.getStatusCode();
27 UserDTO dto = response.getBody();
28 switch (response.getStatusCode()) {
37 return Optional.empty();
39 throw new RuntimeException(status.toString());