WIP
[demos/pact] / pwreset / src / main / java / de / juplo / demos / pwreset / adapters / out / RemoteUsersServiceConsumer.java
1 package de.juplo.demos.pwreset.adapters.out;
2
3 import de.juplo.demos.pwreset.api.out.UsersService;
4 import lombok.RequiredArgsConstructor;
5 import org.springframework.http.HttpStatus;
6 import org.springframework.http.ResponseEntity;
7 import org.springframework.web.client.RestTemplate;
8
9 import java.util.Optional;
10 import java.util.UUID;
11
12
13 @RequiredArgsConstructor
14 public class RemoteUsersServiceConsumer implements UsersService
15 {
16   private final String uriTemplate;
17   private final RestTemplate restTemplate;
18
19
20   @Override
21   public Optional<UUID> getUserByEmail(String email)
22   {
23     ResponseEntity<UserDTO> response =
24         restTemplate.getForEntity(uriTemplate, UserDTO.class, email);
25
26     HttpStatus status = response.getStatusCode();
27     UserDTO dto = response.getBody();
28
29     switch (response.getStatusCode())
30     {
31       case OK:
32         return
33             Optional.of(dto.id);
34
35       case NOT_FOUND:
36         return Optional.empty();
37
38       default:
39         throw new RuntimeException(status.toString());
40     }
41   }
42
43   @Override
44   public void setPassword(UUID userId, String password)
45   {
46
47   }
48 }