6755255dd1e0218c3f8b4f315fc2c7759df753bd
[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     ResponseEntity<UserDTO> response =
23         restTemplate.getForEntity(uriTemplate, UserDTO.class, email);
24     HttpStatus status = response.getStatusCode();
25     UserDTO dto = response.getBody();
26     switch (response.getStatusCode()) {
27       case OK:
28         return
29             Optional.of(dto.id);
30       case NOT_FOUND:
31         return Optional.empty();
32       default:
33         throw new RuntimeException(status.toString());
34     }
35   }
36
37   @Override
38   public void setPassword(UUID userId, String password) {
39
40   }
41 }