1 package de.juplo.demos.pwreset.adapter;
3 import de.juplo.demos.pwreset.domain.User;
4 import de.juplo.demos.pwreset.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;
13 @RequiredArgsConstructor
14 public class RemoteUsersServiceConsumer implements UsersService
16 private final String uriTemplate;
17 private final RestTemplate restTemplate;
21 public Optional<User> getUserByEmail(String email) {
22 ResponseEntity<UserDTO> response =
23 restTemplate.getForEntity(uriTemplate, UserDTO.class, email);
24 HttpStatus status = response.getStatusCode();
25 UserDTO dto = response.getBody();
26 switch (response.getStatusCode()) {
35 return Optional.empty();
37 throw new RuntimeException(status.toString());